Advertisement
Guest User

Untitled

a guest
May 11th, 2013
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.93 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <time.h>
  4. #include <stdlib.h>
  5. using namespace std;
  6.  
  7. const size_t NTESTS = 10000;
  8. vector<char> deck;
  9.  
  10. void FY_shuffle (vector<char> & v)
  11. {
  12.     for (size_t i=1;i<v.size();++i)
  13.         swap(v[i],v[rand()%(i+1)]);
  14. }
  15.  
  16. int main ()
  17. {
  18.     deck.resize(52);
  19.     for (size_t i=0;i<26;++i)
  20.         deck[i]='R'; // R - красная
  21.     for (size_t i=26;i<52;++i)
  22.         deck[i]='B'; // B - чёрная
  23.     srand(time(NULL));
  24.     FY_shuffle(deck);
  25.     double average=0;
  26.     for (size_t j=0;j<NTESTS;++j)
  27.     {
  28.         int correct_answers=0,reds=26,blacks=26;
  29.         for (size_t i=0;i<deck.size();++i)
  30.         {
  31.             int r=rand()%(reds+blacks);
  32.             if (r<reds)
  33.             {
  34.                 if (deck[i]=='R')
  35.                     --reds,++correct_answers;
  36.                 else
  37.                     --blacks;
  38.             }
  39.             else
  40.             {
  41.                 if (deck[i]=='B')
  42.                     --blacks,++correct_answers;
  43.                 else
  44.                     --reds;
  45.             }
  46.         }
  47.         average+=(double)correct_answers/(double)NTESTS;
  48.     }
  49.     cout<<average<<endl;
  50.     return 0;
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement