PRNG Analysis

rust


1: 0.000978
2: 0.00095
3: 0.000959
4: 0.001056
5: 0.001003
6: 0.001009
7: 0.000988
8: 0.000979
9: 0.001039
10: 0.001042
11: 0.000982
12: 0.001026
13: 0.00096
14: 0.001005
15: 0.00101
16: 0.001001
17: 0.000954
18: 0.000994
19: 0.000954
20: 0.000999
21: 0.001033
22: 0.000993
23: 0.001003
24: 0.001004
25: 0.001001
26: 0.00097
27: 0.000981
28: 0.001023
29: 0.001006
30: 0.001089
31: 0.00106
32: 0.000992
33: 0.000994
34: 0.001035
35: 0.001005
36: 0.001009
37: 0.001035
38: 0.001005
39: 0.000994
40: 0.000987
41: 0.001022
42: 0.001066
43: 0.00102
44: 0.001067
45: 0.000969
46: 0.001017
47: 0.001027
48: 0.001058
49: 0.000987
50: 0.000943
51: 0.000968
52: 0.001028
53: 0.001034
54: 0.000977
55: 0.001021
56: 0.000996
57: 0.00104
58: 0.001087
59: 0.000973
60: 0.000987
61: 0.000958
62: 0.001004
63: 0.000987
64: 0.001037
65: 0.000964
66: 0.000973
67: 0.00099
68: 0.000957
69: 0.000999
70: 0.000984
71: 0.000996
72: 0.000961
73: 0.001048
74: 0.00101
75: 0.001023
76: 0.001034
77: 0.000983
78: 0.001011
79: 0.00101
80: 0.000991
81: 0.000986
82: 0.001038
83: 0.00102
84: 0.000982
85: 0.001
86: 0.000975
87: 0.001057
88: 0.001014
89: 0.00101
90: 0.00102
91: 0.000983
92: 0.001009
93: 0.000992
94: 0.001002
95: 0.000995
96: 0.000994
97: 0.000963
98: 0.001015
99: 0.001032
100: 0.001012
101: 0.00103
102: 0.001032
103: 0.000974
104: 0.001002
105: 0.001004
106: 0.001028
107: 0.001
108: 0.000983
109: 0.001006
110: 0.001025
111: 0.000989
112: 0.000961
113: 0.000987
114: 0.001037
115: 0.001074
116: 0.000989
117: 0.000991
118: 0.000974
119: 0.000976
120: 0.000987
121: 0.000979
122: 0.000964
123: 0.00097
124: 0.00103
125: 0.000958
126: 0.001059
127: 0.000981
128: 0.001019
129: 0.000956
130: 0.001014
131: 0.000995
132: 0.000968
133: 0.000948
134: 0.001033
135: 0.000959
136: 0.001044
137: 0.001005
138: 0.001044
139: 0.000993
140: 0.000997
141: 0.001036
142: 0.000982
143: 0.000973
144: 0.001043
145: 0.001003
146: 0.00098
147: 0.000996
148: 0.001032
149: 0.001006
150: 0.000965
151: 0.001014
152: 0.000961
153: 0.000954
154: 0.001024
155: 0.000951
156: 0.001008
157: 0.000975
158: 0.000978
159: 0.001023
160: 0.000974
161: 0.001021
162: 0.001016
163: 0.000997
164: 0.00102
165: 0.001014
166: 0.001039
167: 0.001005
168: 0.00098
169: 0.001012
170: 0.001016
171: 0.000986
172: 0.00098
173: 0.001047
174: 0.001026
175: 0.000967
176: 0.000989
177: 0.000989
178: 0.000996
179: 0.000975
180: 0.000955
181: 0.001036
182: 0.000985
183: 0.000973
184: 0.001013
185: 0.001001
186: 0.001051
187: 0.001075
188: 0.001026
189: 0.000958
190: 0.001019
191: 0.00101
192: 0.001041
193: 0.000976
194: 0.000947
195: 0.001036
196: 0.000999
197: 0.001
198: 0.001012
199: 0.000951
200: 0.001021
201: 0.001036
202: 0.00097
203: 0.000971
204: 0.000974
205: 0.00098
206: 0.001004
207: 0.001009
208: 0.000971
209: 0.001015
210: 0.001031
211: 0.000993
212: 0.000985
213: 0.000958
214: 0.000988
215: 0.001006
216: 0.001038
217: 0.001
218: 0.000985
219: 0.000939
220: 0.001
221: 0.000973
222: 0.000985
223: 0.001022
224: 0.001028
225: 0.000953
226: 0.000969
227: 0.000923
228: 0.001046
229: 0.001023
230: 0.001014
231: 0.000977
232: 0.000945
233: 0.001042
234: 0.001047
235: 0.000983
236: 0.000973
237: 0.000987
238: 0.00105
239: 0.000983
240: 0.001021
241: 0.001046
242: 0.000984
243: 0.001054
244: 0.00098
245: 0.001052
246: 0.000981
247: 0.000981
248: 0.001023
249: 0.000993
250: 0.000939
251: 0.000976
252: 0.000972
253: 0.000956
254: 0.001001
255: 0.000986
256: 0.001012
257: 0.001022
258: 0.001038
259: 0.001004
260: 0.00095
261: 0.000962
262: 0.000946
263: 0.001015
264: 0.001002
265: 0.000947
266: 0.000949
267: 0.000986
268: 0.001002
269: 0.000964
270: 0.001033
271: 0.00096
272: 0.000987
273: 0.00106
274: 0.001021
275: 0.001028
276: 0.001006
277: 0.00101
278: 0.001006
279: 0.001036
280: 0.001017
281: 0.000996
282: 0.000972
283: 0.001028
284: 0.000956
285: 0.001013
286: 0.001042
287: 0.001036
288: 0.000981
289: 0.001082
290: 0.000995
291: 0.001029
292: 0.001002
293: 0.000994
294: 0.001032
295: 0.001
296: 0.00101
297: 0.001044
298: 0.000989
299: 0.001005
300: 0.000996
301: 0.000953
302: 0.000985
303: 0.000997
304: 0.00099
305: 0.001029
306: 0.000961
307: 0.000998
308: 0.001014
309: 0.001042
310: 0.001046
311: 0.000957
312: 0.001007
313: 0.001043
314: 0.00097
315: 0.001004
316: 0.001015
317: 0.000979
318: 0.000988
319: 0.001009
320: 0.000986
321: 0.001053
322: 0.000997
323: 0.001075
324: 0.000948
325: 0.000987
326: 0.000976
327: 0.000976
328: 0.001009
329: 0.001027
330: 0.001043
331: 0.001051
332: 0.001043
333: 0.000979
334: 0.001003
335: 0.001005
336: 0.001028
337: 0.001064
338: 0.000966
339: 0.001041
340: 0.001051
341: 0.000995
342: 0.001005
343: 0.001004
344: 0.000986
345: 0.000982
346: 0.001011
347: 0.001022
348: 0.000974
349: 0.000931
350: 0.001002
351: 0.00098
352: 0.000999
353: 0.00094
354: 0.000977
355: 0.001022
356: 0.001041
357: 0.000993
358: 0.000997
359: 0.00094
360: 0.000991
361: 0.001036
362: 0.001004
363: 0.000981
364: 0.000971
365: 0.001032
366: 0.000991
367: 0.001006
368: 0.000989
369: 0.000936
370: 0.000967
371: 0.001035
372: 0.000971
373: 0.000996
374: 0.001042
375: 0.000966
376: 0.00097
377: 0.000946
378: 0.000998
379: 0.000932
380: 0.000943
381: 0.000988
382: 0.000969
383: 0.000943
384: 0.000996
385: 0.001035
386: 0.000963
387: 0.001026
388: 0.000989
389: 0.000982
390: 0.00102
391: 0.001009
392: 0.00103
393: 0.001054
394: 0.000979
395: 0.000995
396: 0.000984
397: 0.000989
398: 0.001007
399: 0.000996
400: 0.000987
401: 0.000983
402: 0.001056
403: 0.001056
404: 0.000987
405: 0.001016
406: 0.000958
407: 0.001022
408: 0.00099
409: 0.000923
410: 0.001006
411: 0.000972
412: 0.000978
413: 0.001032
414: 0.001022
415: 0.000969
416: 0.001034
417: 0.000941
418: 0.001003
419: 0.001064
420: 0.000946
421: 0.000998
422: 0.001064
423: 0.001023
424: 0.001008
425: 0.000955
426: 0.00097
427: 0.000969
428: 0.000977
429: 0.000968
430: 0.001025
431: 0.00102
432: 0.001031
433: 0.000988
434: 0.000997
435: 0.000959
436: 0.001081
437: 0.001001
438: 0.000986
439: 0.001034
440: 0.000977
441: 0.001012
442: 0.000966
443: 0.001015
444: 0.000956
445: 0.00099
446: 0.000998
447: 0.001023
448: 0.000995
449: 0.001033
450: 0.000963
451: 0.001016
452: 0.001002
453: 0.001031
454: 0.00101
455: 0.001051
456: 0.000951
457: 0.001009
458: 0.000986
459: 0.000988
460: 0.001023
461: 0.001007
462: 0.000954
463: 0.000968
464: 0.001016
465: 0.000982
466: 0.001022
467: 0.000999
468: 0.001066
469: 0.001026
470: 0.00104
471: 0.001068
472: 0.00097
473: 0.001016
474: 0.000991
475: 0.000968
476: 0.000986
477: 0.000973
478: 0.000998
479: 0.00099
480: 0.001037
481: 0.000989
482: 0.001037
483: 0.000988
484: 0.000988
485: 0.001005
486: 0.00095
487: 0.000995
488: 0.001016
489: 0.000962
490: 0.001026
491: 0.001093
492: 0.000995
493: 0.001024
494: 0.00102
495: 0.000953
496: 0.000993
497: 0.000991
498: 0.000983
499: 0.001038
500: 0.000987
501: 0.000964
502: 0.000944
503: 0.000988
504: 0.001008
505: 0.000999
506: 0.001002
507: 0.000926
508: 0.000913
509: 0.001046
510: 0.00099
511: 0.001019
512: 0.001007
513: 0.001012
514: 0.000989
515: 0.000959
516: 0.000992
517: 0.000954
518: 0.001018
519: 0.000977
520: 0.001026
521: 0.000971
522: 0.001002
523: 0.001038
524: 0.001037
525: 0.000964
526: 0.001067
527: 0.000973
528: 0.000952
529: 0.000964
530: 0.001001
531: 0.001001
532: 0.001023
533: 0.001019
534: 0.001011
535: 0.001011
536: 0.00098
537: 0.001039
538: 0.000943
539: 0.000988
540: 0.000991
541: 0.000964
542: 0.00102
543: 0.001
544: 0.001024
545: 0.000931
546: 0.000967
547: 0.001068
548: 0.001052
549: 0.001053
550: 0.001004
551: 0.001001
552: 0.000986
553: 0.000981
554: 0.001013
555: 0.000933
556: 0.000994
557: 0.000957
558: 0.000994
559: 0.001033
560: 0.00099
561: 0.000979
562: 0.001022
563: 0.001013
564: 0.000963
565: 0.001025
566: 0.001026
567: 0.00097
568: 0.000997
569: 0.001041
570: 0.000992
571: 0.001029
572: 0.001004
573: 0.000974
574: 0.001003
575: 0.000988
576: 0.001006
577: 0.000991
578: 0.001013
579: 0.000937
580: 0.000966
581: 0.000998
582: 0.000915
583: 0.001029
584: 0.000987
585: 0.00101
586: 0.00101
587: 0.001038
588: 0.001008
589: 0.000989
590: 0.00106
591: 0.000967
592: 0.001025
593: 0.000957
594: 0.001002
595: 0.001009
596: 0.001023
597: 0.000992
598: 0.00097
599: 0.001031
600: 0.000943
601: 0.00098
602: 0.001014
603: 0.001006
604: 0.000988
605: 0.001002
606: 0.000951
607: 0.001014
608: 0.001053
609: 0.001029
610: 0.000973
611: 0.000943
612: 0.000976
613: 0.001045
614: 0.00097
615: 0.000999
616: 0.001015
617: 0.000926
618: 0.000968
619: 0.001012
620: 0.001029
621: 0.000992
622: 0.000998
623: 0.001006
624: 0.000954
625: 0.000988
626: 0.001043
627: 0.001005
628: 0.00093
629: 0.000963
630: 0.000964
631: 0.000985
632: 0.001039
633: 0.000971
634: 0.000968
635: 0.000945
636: 0.001033
637: 0.000992
638: 0.000992
639: 0.001013
640: 0.000967
641: 0.00095
642: 0.000954
643: 0.001009
644: 0.001004
645: 0.001039
646: 0.001028
647: 0.000961
648: 0.001025
649: 0.000979
650: 0.001024
651: 0.000988
652: 0.000991
653: 0.000963
654: 0.00102
655: 0.001034
656: 0.00104
657: 0.000972
658: 0.001003
659: 0.001059
660: 0.000995
661: 0.001013
662: 0.000998
663: 0.000962
664: 0.001012
665: 0.000991
666: 0.001003
667: 0.001038
668: 0.00105
669: 0.001016
670: 0.000952
671: 0.001049
672: 0.000987
673: 0.000999
674: 0.001035
675: 0.00104
676: 0.001043
677: 0.001005
678: 0.000985
679: 0.000961
680: 0.000926
681: 0.000936
682: 0.000983
683: 0.000981
684: 0.001074
685: 0.000983
686: 0.001072
687: 0.001017
688: 0.001002
689: 0.001031
690: 0.000979
691: 0.000942
692: 0.000991
693: 0.001036
694: 0.001035
695: 0.00101
696: 0.000979
697: 0.001014
698: 0.00103
699: 0.001035
700: 0.001008
701: 0.001011
702: 0.000989
703: 0.001048
704: 0.001033
705: 0.000947
706: 0.001031
707: 0.000945
708: 0.000956
709: 0.000966
710: 0.000974
711: 0.001019
712: 0.001018
713: 0.000981
714: 0.000993
715: 0.00097
716: 0.001005
717: 0.000983
718: 0.001057
719: 0.001025
720: 0.000999
721: 0.000978
722: 0.001018
723: 0.000984
724: 0.000967
725: 0.00097
726: 0.000951
727: 0.000975
728: 0.000983
729: 0.001024
730: 0.000957
731: 0.001036
732: 0.000986
733: 0.001004
734: 0.000943
735: 0.00099
736: 0.00107
737: 0.000965
738: 0.001005
739: 0.001028
740: 0.000978
741: 0.000972
742: 0.000912
743: 0.001053
744: 0.001039
745: 0.001008
746: 0.00098
747: 0.001006
748: 0.000972
749: 0.000999
750: 0.000989
751: 0.000983
752: 0.000955
753: 0.001017
754: 0.000937
755: 0.001008
756: 0.001002
757: 0.000972
758: 0.001012
759: 0.00097
760: 0.000978
761: 0.001001
762: 0.000985
763: 0.000982
764: 0.001085
765: 0.001021
766: 0.001036
767: 0.001061
768: 0.001029
769: 0.001025
770: 0.001005
771: 0.000976
772: 0.000994
773: 0.000989
774: 0.001049
775: 0.001062
776: 0.001004
777: 0.001026
778: 0.001001
779: 0.000992
780: 0.001075
781: 0.000964
782: 0.001079
783: 0.00101
784: 0.000986
785: 0.000979
786: 0.000965
787: 0.001021
788: 0.000975
789: 0.00102
790: 0.001008
791: 0.000981
792: 0.000995
793: 0.001002
794: 0.00097
795: 0.001021
796: 0.001041
797: 0.00107
798: 0.00102
799: 0.001066
800: 0.000998
801: 0.000991
802: 0.000981
803: 0.001017
804: 0.000943
805: 0.001004
806: 0.000998
807: 0.000984
808: 0.001001
809: 0.000937
810: 0.001018
811: 0.001018
812: 0.000981
813: 0.000966
814: 0.001009
815: 0.001017
816: 0.001045
817: 0.000963
818: 0.001014
819: 0.00102
820: 0.000982
821: 0.000995
822: 0.000977
823: 0.001027
824: 0.001036
825: 0.001014
826: 0.000998
827: 0.001047
828: 0.001025
829: 0.001022
830: 0.001034
831: 0.001062
832: 0.001056
833: 0.000983
834: 0.001038
835: 0.000995
836: 0.00099
837: 0.001038
838: 0.000998
839: 0.000992
840: 0.000919
841: 0.000958
842: 0.001031
843: 0.00102
844: 0.001041
845: 0.000983
846: 0.000966
847: 0.001004
848: 0.000988
849: 0.000988
850: 0.000935
851: 0.001033
852: 0.001044
853: 0.001026
854: 0.000977
855: 0.001008
856: 0.000977
857: 0.001021
858: 0.000976
859: 0.000999
860: 0.00101
861: 0.000962
862: 0.00101
863: 0.000983
864: 0.000942
865: 0.000937
866: 0.00101
867: 0.001032
868: 0.001033
869: 0.000957
870: 0.000975
871: 0.000957
872: 0.00098
873: 0.000985
874: 0.000955
875: 0.000989
876: 0.000989
877: 0.000989
878: 0.000974
879: 0.000988
880: 0.001014
881: 0.001006
882: 0.001028
883: 0.000973
884: 0.00097
885: 0.00104
886: 0.001019
887: 0.001035
888: 0.001053
889: 0.001003
890: 0.000983
891: 0.001041
892: 0.001078
893: 0.000979
894: 0.001021
895: 0.000987
896: 0.001039
897: 0.000987
898: 0.001046
899: 0.000978
900: 0.001036
901: 0.001007
902: 0.001019
903: 0.000999
904: 0.000982
905: 0.001026
906: 0.001012
907: 0.001002
908: 0.000981
909: 0.001009
910: 0.001006
911: 0.000994
912: 0.000999
913: 0.000959
914: 0.000964
915: 0.000956
916: 0.000997
917: 0.000961
918: 0.000961
919: 0.000961
920: 0.000924
921: 0.00104
922: 0.000971
923: 0.001011
924: 0.001008
925: 0.001005
926: 0.001024
927: 0.000964
928: 0.000999
929: 0.000992
930: 0.000978
931: 0.00096
932: 0.00102
933: 0.001024
934: 0.001007
935: 0.000998
936: 0.000994
937: 0.000985
938: 0.000995
939: 0.000996
940: 0.000978
941: 0.000989
942: 0.001002
943: 0.001035
944: 0.000961
945: 0.001022
946: 0.001009
947: 0.001036
948: 0.001017
949: 0.001045
950: 0.000966
951: 0.001024
952: 0.000974
953: 0.00102
954: 0.00099
955: 0.001021
956: 0.001042
957: 0.001
958: 0.000977
959: 0.000984
960: 0.001001
961: 0.000959
962: 0.001024
963: 0.001004
964: 0.001018
965: 0.001012
966: 0.000975
967: 0.001021
968: 0.000972
969: 0.000991
970: 0.000963
971: 0.001031
972: 0.001038
973: 0.000962
974: 0.001021
975: 0.000992
976: 0.001024
977: 0.001065
978: 0.001031
979: 0.000958
980: 0.001014
981: 0.000962
982: 0.001014
983: 0.00102
984: 0.001031
985: 0.001095
986: 0.000935
987: 0.001049
988: 0.000995
989: 0.001026
990: 0.001031
991: 0.001007
992: 0.001014
993: 0.001063
994: 0.001081
995: 0.001034
996: 0.000997
997: 0.001002
998: 0.001005
999: 0.00099
1000: 0.000997
1: 0.100016403
2: 0.099989755
3: 0.09998314
4: 0.100010962
5: 0.100012731
6: 0.09999722
7: 0.099989108
8: 0.100004252
9: 0.099995059
10: 0.10000137
1: 0.100518
2: 0.099765
3: 0.10009
4: 0.09987
5: 0.099746
6: 0.100096
7: 0.099797
8: 0.100398
9: 0.099515
10: 0.100205

use rand::distributions::{Distribution, Uniform};
use std::fs::File;
use std::io::Write;

fn main() {
    let n = 1000000000;
    let x = 10;

    let mut rng = rand::thread_rng();
    let range = Uniform::from(1..=x);
    let mut counts = vec![0; x];

    for _ in 0..n {
        let number = range.sample(&mut rng);
        counts[number - 1] += 1;
    }

    let mut file = File::create(format!("rust_{}_{}", x, n)).unwrap();

    for i in 0..x {
        let probability = counts[i] as f64 / n as f64;
        writeln!(file, "{}: {}", i + 1, probability).unwrap();
    }
}