PRNG Analysis

clojure


0:0.001010000
893:0.001035000
920:0.000993000
558:0.000983000
453:0.000996000
584:0.001036000
487:0.001028000
637:0.001020000
972:0.001027000
519:0.000990000
357:0.001030000
716:0.000978000
950:0.000986000
275:0.001008000
530:0.001036000
929:0.000989000
789:0.000990000
389:0.001012000
586:0.000989000
410:0.000976000
433:0.001010000
765:0.001014000
521:0.000964000
451:0.000983000
291:0.001009000
443:0.000931000
798:0.001050000
779:0.000986000
970:0.001014000
249:0.000997000
638:0.001069000
299:0.000964000
121:0.000976000
734:0.001016000
287:0.001040000
65:0.001053000
702:0.000996000
70:0.000989000
949:0.000994000
218:0.001032000
648:0.001024000
812:0.001008000
62:0.001023000
74:0.001002000
774:0.001014000
475:0.000995000
497:0.001033000
580:0.000991000
891:0.000980000
164:0.000972000
282:0.001062000
769:0.001001000
799:0.000952000
273:0.001067000
186:0.000985000
430:0.000983000
641:0.001002000
529:0.000976000
898:0.000994000
370:0.000989000
834:0.001034000
233:0.001017000
298:0.001004000
188:0.001016000
240:0.000998000
110:0.000975000
130:0.000918000
982:0.000969000
620:0.000982000
311:0.001025000
931:0.000992000
882:0.000962000
128:0.001001000
399:0.001060000
989:0.001017000
377:0.001062000
468:0.001007000
259:0.001073000
210:0.000950000
229:0.001022000
153:0.001018000
621:0.001045000
213:0.000963000
670:0.001021000
977:0.001046000
343:0.000981000
958:0.000984000
887:0.000975000
472:0.000977000
7:0.000981000
894:0.001012000
59:0.000996000
934:0.000983000
473:0.001006000
86:0.001001000
756:0.000965000
830:0.000947000
613:0.001019000
491:0.000973000
154:0.000946000
20:0.000962000
224:0.001037000
355:0.000984000
592:0.001038000
610:0.000997000
806:0.001045000
571:0.001011000
466:0.001003000
72:0.001016000
454:0.001022000
888:0.000973000
463:0.001039000
851:0.000982000
770:0.000959000
814:0.000971000
859:0.000998000
58:0.001057000
964:0.001031000
980:0.000984000
205:0.000998000
555:0.001032000
552:0.001019000
60:0.000983000
835:0.001038000
459:0.000984000
175:0.001027000
322:0.001011000
510:0.000989000
662:0.000983000
27:0.000999000
352:0.000995000
493:0.001000000
899:0.000958000
416:0.001017000
777:0.001016000
694:0.001012000
1:0.001030000
631:0.001091000
854:0.001032000
69:0.001023000
101:0.001018000
24:0.000960000
901:0.001010000
547:0.001025000
102:0.000996000
788:0.001084000
713:0.001033000
385:0.001007000
988:0.001004000
135:0.000985000
397:0.000991000
773:0.000995000
490:0.001008000
752:0.000976000
354:0.001027000
884:0.001021000
360:0.001040000
998:0.000983000
961:0.001015000
55:0.000980000
568:0.000988000
797:0.000996000
688:0.000985000
763:0.000967000
269:0.001040000
676:0.001004000
448:0.000990000
527:0.000958000
206:0.001010000
966:0.001014000
165:0.000999000
715:0.001001000
387:0.000943000
652:0.000959000
683:0.000972000
85:0.001001000
721:0.001032000
862:0.001001000
615:0.001005000
681:0.001028000
225:0.001091000
865:0.000986000
297:0.001002000
39:0.001074000
805:0.000985000
274:0.001011000
88:0.001046000
217:0.000929000
46:0.000976000
682:0.001035000
508:0.000961000
149:0.000963000
415:0.000984000
239:0.000982000
478:0.000989000
878:0.001009000
157:0.000979000
345:0.001025000
300:0.001001000
743:0.001020000
921:0.001011000
4:0.000996000
550:0.001044000
204:0.000957000
470:0.001043000
646:0.000980000
77:0.000948000
106:0.000966000
197:0.000948000
405:0.001002000
897:0.000981000
726:0.001026000
776:0.001019000
940:0.001018000
755:0.000973000
902:0.000958000
518:0.001062000
232:0.000990000
260:0.001062000
823:0.001002000
267:0.001002000
119:0.001019000
319:0.000975000
534:0.001053000
222:0.001052000
603:0.000978000
293:0.001053000
95:0.001011000
450:0.000991000
329:0.000978000
144:0.000992000
504:0.000992000
819:0.000990000
818:0.001034000
505:0.000999000
723:0.000999000
992:0.000942000
176:0.000978000
863:0.000982000
471:0.000951000
349:0.001000000
512:0.001016000
710:0.001039000
192:0.001003000
54:0.000999000
92:0.000972000
221:0.000989000
141:0.000982000
502:0.001038000
871:0.000954000
464:0.000993000
801:0.000990000
307:0.001011000
935:0.000963000
758:0.001065000
290:0.001001000
627:0.001007000
517:0.000952000
361:0.001012000
264:0.000975000
137:0.001049000
356:0.001045000
728:0.001099000
976:0.001074000
678:0.000968000
327:0.001027000
234:0.001053000
856:0.000934000
817:0.001012000
104:0.000922000
353:0.000975000
15:0.000926000
48:0.001010000
945:0.000969000
759:0.000999000
242:0.000997000
832:0.000972000
969:0.000962000
50:0.000963000
956:0.000952000
917:0.001022000
557:0.001038000
251:0.001006000
394:0.000953000
116:0.000975000
585:0.000955000
583:0.001031000
75:0.000964000
437:0.001006000
516:0.001062000
994:0.000955000
930:0.000989000
967:0.000994000
687:0.001001000
159:0.001000000
848:0.000924000
995:0.001013000
709:0.000981000
99:0.000982000
540:0.001068000
645:0.000997000
749:0.001010000
479:0.000983000
890:0.000952000
630:0.000995000
916:0.000961000
815:0.001007000
281:0.000918000
402:0.000978000
669:0.000966000
781:0.000988000
740:0.000941000
975:0.000999000
429:0.001001000
309:0.000968000
458:0.000990000
21:0.001038000
388:0.000970000
495:0.000988000
952:0.001040000
626:0.000975000
875:0.000990000
31:0.000998000
113:0.001018000
32:0.000996000
811:0.000940000
827:0.001021000
407:0.001016000
398:0.001007000
136:0.001027000
691:0.000981000
847:0.001016000
825:0.001026000
139:0.000945000
506:0.001066000
396:0.001060000
460:0.000981000
483:0.001009000
589:0.001007000
581:0.001029000
932:0.001084000
174:0.001031000
578:0.000996000
855:0.000998000
331:0.001015000
363:0.000972000
284:0.000978000
208:0.000952000
305:0.000960000
955:0.000978000
796:0.000968000
708:0.000996000
182:0.000993000
256:0.000978000
657:0.000985000
514:0.000994000
731:0.000976000
619:0.001022000
985:0.001039000
485:0.001016000
214:0.000905000
193:0.001030000
685:0.000921000
804:0.001036000
869:0.000986000
836:0.001019000
785:0.001045000
635:0.000963000
442:0.001021000
561:0.001032000
954:0.000966000
656:0.001002000
607:0.000977000
241:0.000950000
314:0.001053000
782:0.001022000
226:0.001073000
235:0.001023000
672:0.001000000
420:0.001028000
418:0.000972000
262:0.000965000
263:0.001019000
304:0.000971000
401:0.000978000
673:0.000994000
40:0.001017000
129:0.000974000
600:0.000995000
729:0.001017000
467:0.000989000
445:0.001008000
317:0.001013000
294:0.000979000
91:0.000998000
810:0.001010000
364:0.000969000
987:0.001038000
880:0.000980000
515:0.000981000
412:0.000999000
553:0.000973000
974:0.000951000
341:0.000984000
117:0.000982000
665:0.001065000
523:0.001029000
172:0.001027000
601:0.001029000
108:0.001002000
156:0.000995000
358:0.001036000
308:0.001039000
908:0.001016000
649:0.001004000
531:0.001002000
923:0.000987000
223:0.001005000
419:0.000978000
365:0.000988000
944:0.001012000
181:0.001002000
417:0.000936000
979:0.000963000
278:0.001008000
56:0.000974000
942:0.000976000
33:0.000997000
13:0.001043000
867:0.000986000
22:0.001029000
618:0.000957000
380:0.001012000
257:0.000970000
338:0.001008000
500:0.000989000
909:0.000987000
993:0.000975000
168:0.000947000
833:0.001047000
496:0.001029000
947:0.000983000
347:0.001003000
501:0.001012000
596:0.000967000
872:0.001007000
792:0.000967000
90:0.001037000
237:0.000980000
826:0.001004000
292:0.000995000
109:0.000921000
216:0.001010000
191:0.000987000
498:0.000980000
829:0.000999000
761:0.000972000
375:0.000993000
525:0.000988000
367:0.001017000
143:0.000988000
742:0.001024000
178:0.000979000
640:0.000943000
247:0.001035000
328:0.000989000
391:0.001043000
990:0.001007000
167:0.001030000
707:0.000993000
36:0.001025000
41:0.001005000
474:0.001007000
187:0.001038000
551:0.001012000
996:0.001002000
528:0.001010000
971:0.000982000
599:0.001036000
376:0.000976000
195:0.001000000
889:0.000962000
316:0.001062000
668:0.001043000
428:0.001068000
303:0.001035000
671:0.001019000
794:0.000948000
905:0.000977000
368:0.001003000
560:0.001004000
565:0.001000000
310:0.000991000
366:0.000956000
118:0.001024000
522:0.001003000
150:0.000968000
886:0.001039000
313:0.001005000
384:0.001011000
567:0.001038000
238:0.000981000
846:0.001013000
962:0.000992000
845:0.000987000
196:0.001022000
162:0.000988000
393:0.001015000
184:0.001022000
219:0.001006000
999:0.001018000
461:0.000975000
89:0.000966000
100:0.000995000
426:0.001007000
604:0.000991000
477:0.001054000
844:0.001045000
541:0.000982000
351:0.000978000
243:0.000936000
131:0.000999000
790:0.000988000
963:0.001027000
629:0.000962000
873:0.000982000
122:0.000985000
933:0.001037000
43:0.001038000
231:0.001012000
61:0.000983000
654:0.001008000
883:0.000992000
598:0.001022000
413:0.000978000
29:0.000984000
784:0.001004000
800:0.000990000
151:0.000999000
369:0.000956000
348:0.000952000
575:0.000999000
693:0.001031000
44:0.000967000
739:0.000964000
258:0.001015000
250:0.001031000
674:0.001066000
539:0.001001000
301:0.000983000
838:0.001002000
424:0.000988000
93:0.000993000
6:0.001030000
684:0.000999000
951:0.001027000
573:0.001074000
408:0.001024000
563:0.000989000
850:0.000950000
616:0.000932000
866:0.000979000
111:0.000995000
997:0.001008000
689:0.001025000
28:0.000954000
456:0.000992000
374:0.001033000
608:0.000924000
737:0.001035000
548:0.000993000
538:0.000950000
895:0.000991000
411:0.000950000
957:0.001037000
134:0.001002000
943:0.001023000
64:0.000979000
623:0.001003000
465:0.000997000
816:0.001010000
334:0.001016000
323:0.000925000
189:0.000975000
280:0.000973000
198:0.000986000
155:0.000965000
295:0.000930000
808:0.001019000
248:0.001085000
587:0.001066000
285:0.001034000
507:0.001016000
227:0.000974000
724:0.000989000
476:0.001021000
941:0.000986000
911:0.001018000
853:0.001032000
494:0.000964000
220:0.000983000
842:0.001024000
103:0.000998000
697:0.001025000
611:0.001051000
170:0.001024000
51:0.001059000
25:0.001020000
261:0.000948000
768:0.001028000
822:0.000996000
201:0.001020000
904:0.000978000
590:0.001011000
489:0.000930000
778:0.001014000
166:0.001016000
447:0.001007000
34:0.001029000
252:0.000960000
978:0.000999000
775:0.000993000
325:0.000995000
594:0.000942000
436:0.001051000
828:0.000939000
535:0.001058000
813:0.001035000
146:0.000975000
741:0.001010000
876:0.000977000
228:0.001028000
907:0.000962000
306:0.000992000
125:0.000971000
276:0.001005000
340:0.001098000
148:0.000955000
482:0.001011000
622:0.001003000
588:0.001023000
17:0.001018000
312:0.000962000
606:0.001000000
3:0.001043000
520:0.001032000
760:0.001030000
720:0.001008000
286:0.000927000
279:0.000977000
879:0.000965000
536:0.001000000
663:0.001015000
12:0.000975000
440:0.001022000
332:0.000973000
330:0.001000000
382:0.001035000
152:0.000961000
544:0.000963000
803:0.001018000
642:0.000940000
435:0.000984000
342:0.000931000
703:0.001048000
783:0.001020000
695:0.001051000
973:0.000992000
2:0.001013000
948:0.000946000
66:0.000992000
484:0.000997000
439:0.001000000
236:0.000982000
556:0.001038000
373:0.000956000
142:0.000986000
359:0.000955000
727:0.001017000
371:0.000996000
772:0.001022000
444:0.001055000
570:0.000991000
757:0.000995000
107:0.001017000
532:0.001044000
984:0.000941000
23:0.001012000
745:0.000991000
719:0.001010000
230:0.001012000
625:0.001035000
47:0.000982000
526:0.000978000
180:0.001015000
786:0.001047000
870:0.000961000
537:0.001032000
659:0.000967000
158:0.000963000
991:0.001030000
350:0.000909000
35:0.000974000
849:0.000983000
644:0.001009000
881:0.000984000
127:0.000966000
927:0.001017000
675:0.001051000
383:0.001054000
533:0.001044000
910:0.001022000
302:0.000997000
564:0.000984000
701:0.001026000
566:0.001004000
821:0.001000000
787:0.001009000
82:0.000990000
76:0.000955000
735:0.001009000
492:0.000937000
718:0.000991000
771:0.000974000
215:0.001025000
97:0.000982000
704:0.001065000
277:0.000960000
926:0.001038000
751:0.001025000
19:0.000985000
335:0.000987000
597:0.001025000
938:0.000935000
57:0.001016000
609:0.000965000
202:0.000954000
68:0.001002000
452:0.000983000
200:0.000971000
868:0.001017000
11:0.000977000
115:0.000976000
946:0.001015000
983:0.000967000
339:0.001027000
431:0.000988000
462:0.000977000
337:0.001080000
698:0.000978000
255:0.000971000
503:0.001027000
546:0.000965000
9:0.001039000
953:0.000990000
857:0.000986000
706:0.001009000
632:0.000965000
457:0.001000000
427:0.000991000
145:0.001028000
5:0.000953000
733:0.000982000
624:0.001040000
831:0.001000000
244:0.000988000
918:0.001031000
824:0.000984000
289:0.001048000
112:0.001070000
925:0.000998000
730:0.000954000
699:0.001014000
712:0.000957000
414:0.000977000
839:0.001047000
802:0.000988000
860:0.001037000
179:0.001016000
344:0.001023000
481:0.001025000
732:0.001010000
661:0.000995000
245:0.000975000
378:0.001000000
913:0.001019000
906:0.001022000
658:0.000952000
266:0.001044000
324:0.000990000
793:0.000994000
680:0.001045000
446:0.000942000
524:0.000980000
254:0.000980000
404:0.001032000
617:0.001037000
283:0.001015000
513:0.001000000
572:0.000988000
705:0.001019000
959:0.000989000
83:0.001028000
634:0.001038000
138:0.001001000
346:0.001019000
14:0.000956000
455:0.001003000
265:0.000982000
449:0.000993000
333:0.001007000
650:0.001019000
639:0.001000000
569:0.000948000
326:0.000982000
746:0.001015000
647:0.001028000
45:0.001003000
53:0.001011000
559:0.001036000
78:0.000962000
924:0.001063000
562:0.001053000
542:0.000939000
912:0.001008000
664:0.001061000
315:0.000983000
914:0.001008000
480:0.000991000
132:0.000996000
753:0.000971000
900:0.000992000
26:0.000970000
766:0.001016000
123:0.000980000
203:0.000987000
667:0.001010000
392:0.001009000
577:0.000969000
807:0.001036000
140:0.001055000
321:0.000981000
795:0.001038000
441:0.001013000
700:0.000953000
268:0.000941000
840:0.000978000
16:0.000986000
320:0.001000000
133:0.001034000
288:0.000991000
381:0.001000000
605:0.001025000
163:0.001026000
81:0.000947000
120:0.001003000
643:0.000975000
79:0.000946000
211:0.001023000
38:0.000954000
173:0.000998000
126:0.000944000
981:0.000976000
421:0.001012000
593:0.001034000
636:0.000977000
98:0.001004000
422:0.000962000
423:0.001022000
614:0.000997000
762:0.001052000
582:0.001045000
666:0.001011000
554:0.001004000
409:0.000955000
574:0.001053000
595:0.000976000
124:0.001003000
747:0.001019000
171:0.001043000
87:0.001013000
169:0.001004000
653:0.000986000
679:0.001071000
843:0.001013000
160:0.001019000
30:0.000973000
400:0.001037000
767:0.000972000
896:0.001019000
928:0.001029000
696:0.001035000
738:0.000941000
809:0.000998000
509:0.001073000
736:0.001018000
207:0.001011000
874:0.000952000
434:0.000958000
690:0.001071000
194:0.000986000
511:0.000991000
73:0.001003000
486:0.000980000
336:0.000963000
96:0.001020000
837:0.001029000
937:0.000966000
10:0.000987000
660:0.000992000
272:0.000978000
499:0.000954000
488:0.000993000
903:0.001002000
386:0.000984000
270:0.001064000
576:0.001061000
717:0.001034000
543:0.000978000
271:0.000967000
18:0.001060000
395:0.000998000
403:0.001030000
469:0.000992000
105:0.001022000
185:0.000920000
52:0.001007000
545:0.000975000
633:0.001000000
114:0.000997000
968:0.001011000
253:0.001019000
612:0.000955000
628:0.001006000
748:0.001012000
209:0.001045000
147:0.001004000
655:0.001029000
750:0.001056000
852:0.000970000
425:0.000958000
864:0.001033000
67:0.000963000
296:0.000944000
602:0.001012000
318:0.001021000
161:0.001077000
651:0.000920000
725:0.001011000
372:0.000949000
406:0.001020000
438:0.000988000
780:0.000999000
711:0.000997000
71:0.001028000
939:0.001003000
579:0.001015000
877:0.000982000
722:0.001045000
42:0.000982000
919:0.001043000
80:0.001037000
885:0.000980000
986:0.001025000
714:0.001001000
677:0.001000000
199:0.000998000
841:0.000984000
754:0.000949000
791:0.000967000
861:0.000985000
591:0.000969000
744:0.000973000
960:0.001046000
37:0.000989000
183:0.000995000
965:0.001004000
892:0.001034000
432:0.001014000
379:0.001021000
63:0.000987000
212:0.000977000
94:0.001041000
362:0.001011000
8:0.001041000
686:0.001006000
692:0.001042000
764:0.001007000
246:0.001014000
190:0.000980000
549:0.000956000
922:0.000966000
177:0.001011000
915:0.000964000
936:0.000968000
820:0.001023000
49:0.000984000
858:0.001026000
390:0.000992000
84:0.000987000
0:0.100006951
7:0.100006749
1:0.09999796
4:0.100006794
6:0.100008748
3:0.099991432
2:0.099990908
9:0.099981044
5:0.100007739
8:0.1000016750: 0.099635
7: 0.099922
1: 0.099342
4: 0.099832
6: 0.100466
3: 0.100434
2: 0.099913
9: 0.100118
5: 0.100399
8: 0.099939

(defn print-output [data]
  (doseq [[number probability] data]
    (println (str number ":" (format "%.9f" probability)))))

(defn generate-random-numbers [n x]
  (let [numbers (repeatedly n #(rand-int x))]
    (frequencies numbers)))

(defn calculate-probabilities [counts n]
  (into {} (for [[number count] counts]
             [number (float(/ count n))])))

(let [n 1000000
      x 1000
      counts (generate-random-numbers n x)
      probabilities (calculate-probabilities counts n)]
  (print-output probabilities))