fork download
  1. #include <iostream>
  2. #include <iomanip>
  3. #include <random>
  4. #include <map>
  5.  
  6. using namespace std;
  7.  
  8. double p[] =
  9. {
  10. 0.000203775, 0.00060681, 0.00100307, 0.00139256, 0.00177527,
  11. 0.00215121, 0.00252038, 0.00288277, 0.00323839, 0.00358723,
  12. 0.00392931, 0.0042646, 0.00459313, 0.00491488, 0.00522985,
  13. 0.00553806, 0.00583949, 0.00613414, 0.00642202, 0.00670313,
  14. 0.00697747, 0.00724503, 0.00750581, 0.00775983, 0.00800707,
  15. 0.00824753, 0.00848123, 0.00870814, 0.00892829, 0.00914166,
  16. 0.00934826, 0.00954808, 0.00974113, 0.00992741, 0.0101069,
  17. 0.0102796, 0.0104456, 0.0106048, 0.0107572, 0.0109028,
  18. 0.0110417, 0.0111738, 0.0112991, 0.0114176, 0.0115294,
  19. 0.0116344, 0.0117326, 0.011824, 0.0119087, 0.0119866,
  20. 0.0120577, 0.0121221, 0.0121797, 0.0122305, 0.0122745,
  21. 0.0123117, 0.0123422, 0.0123659, 0.0123829, 0.012393,
  22. 0.0123964, 0.012393, 0.0123829, 0.0123659, 0.0123422,
  23. 0.0123117, 0.0122745, 0.0122305, 0.0121797, 0.0121221,
  24. 0.0120577, 0.0119866, 0.0119087, 0.011824, 0.0117326,
  25. 0.0116344, 0.0115294, 0.0114176, 0.0112991, 0.0111738,
  26. 0.0110417, 0.0109028, 0.0107572, 0.0106048, 0.0104456,
  27. 0.0102796, 0.0101069, 0.00992741, 0.00974113, 0.00954808,
  28. 0.00934826, 0.00914166, 0.00892829, 0.00870814, 0.00848123,
  29. 0.00824753, 0.00800707, 0.00775983, 0.00750581, 0.00724503,
  30. 0.00697747, 0.00670313, 0.00642202, 0.00613414, 0.00583949,
  31. 0.00553806, 0.00522985, 0.00491488, 0.00459313, 0.0042646,
  32. 0.00392931, 0.00358723, 0.00323839, 0.00288277, 0.00252038,
  33. 0.00215121, 0.00177527, 0.00139256, 0.00100307, 0.00060681,
  34. 0.000203775
  35. };
  36.  
  37.  
  38. int main([[maybe_unused]] int argc,
  39. [[maybe_unused]] const char* argv[])
  40. {
  41. default_random_engine gen{random_device{}()};
  42. uniform_real_distribution<> dis(0.0, 1.0);
  43.  
  44.  
  45. map<int,int> m;
  46.  
  47. for(int i = 0; i < 1000000; ++i)
  48. {
  49. double r = dis(gen);
  50. int j = -1; double pr = 0;
  51. while(r > pr)
  52. {
  53. pr += p[++j];
  54. }
  55.  
  56. m[j-60]++;
  57. }
  58.  
  59. for(auto q: m)
  60. {
  61. cout << setw(3) << q.first << " ; " << setw(7) << q.second << endl;
  62. }
  63.  
  64. }
  65.  
Success #stdin #stdout 0.1s 4408KB
stdin
Standard input is empty
stdout
-60 ;      197
-59 ;      604
-58 ;      997
-57 ;     1358
-56 ;     1784
-55 ;     2136
-54 ;     2604
-53 ;     2880
-52 ;     3254
-51 ;     3469
-50 ;     3947
-49 ;     4386
-48 ;     4563
-47 ;     4869
-46 ;     5200
-45 ;     5456
-44 ;     5864
-43 ;     6023
-42 ;     6349
-41 ;     6683
-40 ;     6964
-39 ;     7225
-38 ;     7550
-37 ;     7881
-36 ;     8078
-35 ;     8367
-34 ;     8282
-33 ;     8920
-32 ;     8987
-31 ;     8941
-30 ;     9440
-29 ;     9550
-28 ;     9903
-27 ;     9977
-26 ;    10075
-25 ;    10298
-24 ;    10519
-23 ;    10651
-22 ;    10783
-21 ;    10916
-20 ;    10883
-19 ;    11236
-18 ;    11383
-17 ;    11375
-16 ;    11494
-15 ;    11570
-14 ;    11600
-13 ;    11829
-12 ;    11905
-11 ;    12006
-10 ;    12022
 -9 ;    11978
 -8 ;    12201
 -7 ;    12409
 -6 ;    12265
 -5 ;    12340
 -4 ;    12380
 -3 ;    12269
 -2 ;    12475
 -1 ;    12521
  0 ;    12414
  1 ;    12413
  2 ;    12283
  3 ;    12211
  4 ;    12477
  5 ;    12397
  6 ;    12382
  7 ;    12330
  8 ;    12154
  9 ;    11983
 10 ;    12172
 11 ;    11966
 12 ;    11900
 13 ;    11849
 14 ;    11872
 15 ;    11350
 16 ;    11622
 17 ;    11531
 18 ;    11427
 19 ;    11197
 20 ;    11097
 21 ;    10860
 22 ;    10723
 23 ;    10625
 24 ;    10263
 25 ;    10443
 26 ;    10061
 27 ;     9814
 28 ;     9680
 29 ;     9764
 30 ;     9450
 31 ;     9171
 32 ;     8755
 33 ;     8787
 34 ;     8522
 35 ;     8318
 36 ;     7981
 37 ;     7845
 38 ;     7436
 39 ;     7049
 40 ;     6973
 41 ;     6596
 42 ;     6406
 43 ;     6127
 44 ;     5826
 45 ;     5425
 46 ;     5300
 47 ;     4897
 48 ;     4567
 49 ;     4275
 50 ;     3995
 51 ;     3526
 52 ;     3129
 53 ;     2749
 54 ;     2497
 55 ;     2088
 56 ;     1744
 57 ;     1390
 58 ;     1025
 59 ;      616
 60 ;      204