fork download
  1. #include <iostream>
  2. #include <random>
  3. #define N 75
  4. #define TRIALS 1000000
  5.  
  6. int main() {
  7. int counter[2*N];
  8. for (int i = 0; i < 2*N; ++i)
  9. counter[i] = 0;
  10. std::random_device rd;
  11. std::mt19937 gen(rd());
  12. std::uniform_int_distribution<> dis;
  13. int count = 0;
  14. const int A = 52;
  15. for (int trial = 0; trial < TRIALS; ++trial) {
  16. int whites = 0;
  17. dis = std::uniform_int_distribution<> (0, N);
  18. for (int i = 0; i < N; ++i) {
  19. whites++;
  20. if (dis(gen) < whites) {
  21. --whites;
  22. ++counter[i];
  23. //++count;
  24. }
  25. }
  26. /*for (int i = A; i < N+A; ++i) {
  27. dis = std::uniform_int_distribution<> (0, 2*N-i-1);
  28. if (dis(gen) < whites) {
  29. --whites;
  30. ++counter[i];
  31. }
  32. }*/
  33. count += whites;
  34. }
  35. /*for (int i = 0; i < 2*N; ++i)
  36. std::cout << i << ' ' << (double)counter[i] / TRIALS << '\n';*/
  37. std::cout << (double)count / TRIALS / N << '\n';
  38. return 0;
  39. }
Success #stdin #stdout 1.51s 15240KB
stdin
Standard input is empty
stdout
0.629711