fork download
  1. #include <cstdio>
  2. #include <cctype>
  3. #include <ctime>
  4. #include <random>
  5.  
  6.  
  7. int main()
  8. {
  9. std::mt19937 engine(time(0));
  10.  
  11. std::uniform_int_distribution<unsigned int> uint_dist01(0,1);
  12.  
  13. static const std::size_t coin_count = 10000000;
  14. static const std::size_t rounds = 1000000;
  15.  
  16. std::vector<unsigned int> coin_list(coin_count,0);
  17.  
  18. for (std::size_t i = 0; i < coin_count; ++i)
  19. {
  20. coin_list[i] = uint_dist01(engine);
  21. }
  22.  
  23. //
  24. // If tails (0) randomly flip coin
  25. // If heads (1) turn over coin
  26. //
  27.  
  28. for (std::size_t r = 0; r < rounds; ++r)
  29. {
  30. std::size_t head_count = 0;
  31. for (std::size_t i = 0; i < coin_count; ++i)
  32. {
  33. if (coin_list[i] = (coin_list[i] == 0) ? 1 : uint_dist01(engine))
  34. {
  35. head_count++;
  36. }
  37. }
  38.  
  39. printf("heads: %d (%10.5f%%) tails: %d (%10.5f%%)\n",
  40. head_count, 100.0 * ((1.0 * head_count) / coin_count),
  41. coin_count - head_count, 100.0 - 100.0 * ((1.0 * head_count) / coin_count));
  42. }
  43.  
  44. return 0;
  45. }
Time limit exceeded #stdin #stdout 5s 41960KB
stdin
Standard input is empty
stdout
Standard output is empty