Advertisement
Alexandre_lsv

Untitled

Mar 14th, 2016
350
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.45 KB | None | 0 0
  1.  
  2. #include <bits/stdc++.h>
  3. using namespace std;
  4. typedef long long ll;
  5. int main(){
  6.     srand(time(0));
  7.     ll n=1;
  8.     ll count=0;
  9.     ll poscount=0;
  10.     for (ll t=0; t<20; t++){
  11.         n*=10;
  12.         for (ll i=0; i<n; i++)
  13.         {
  14.             set<ll> sett {0,1,2,3,4,5,6}; // изначально 7 комнат
  15.             bool au[7] {};                // изначально его нигде нет
  16.             bool b=false;                 // проверка на возможность просмотра случая
  17.             if ((rand() % 10)>2)          
  18.                 au[rand()%7]=true;        // с вероятностью 0.7 сажаю в случайную из 7 комнат
  19.             ll h=rand()%7;                // выбираю случайную из 7 комнат
  20.             sett.erase(h);                // удаляю из сета, чтобы осталось 6
  21.             for(auto&k:sett){
  22.                 if (au[k]){
  23.                     b=true;               // если он оказался в одной из шести, случай не подходит
  24.                     break;
  25.                 }
  26.             }
  27.             if (!b)                // если ни в одной из 6 его не было, можно рассматривать
  28.                 if (au[h]){        // проверка на то, оказался ли он в седьмой комнате
  29.                     poscount++;
  30.                     count++;
  31.                 }
  32.                 else               // если не оказался
  33.                     count++;
  34.         }
  35.         //cout << poscount << ' ' << count;
  36.         cout << n << ':'<<(double)poscount*1.0/count << endl;
  37.     }
  38.     return 0;
  39. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement