using System; namespace Test { class Program { public class SimpleMarsagliaRandom { private const uint original_w = 1023; private uint m_w = original_w; /* must not be zero */ private uint m_z = 0; /* must not be zero, initialized by the constructor */ public SimpleMarsagliaRandom() { this.init(666); } public void init(uint z) { this.m_w = original_w; this.m_z = z; } public uint get_random() { this.m_z = 36969 * (this.m_z & 65535) + (this.m_z >> 16); this.m_w = 18000 * (this.m_w & 65535) + (this.m_w >> 16); return (this.m_z << 16) + this.m_w; /* 32-bit result */ } public uint get_random(uint min, uint max) { // max excluded uint num = max - min; return (this.get_random() % num) + min; } } public static void Main() { var smr = new SimpleMarsagliaRandom(); for (int i = 0; i < 1000; i++) { Console.WriteLine(smr.get_random()); } } } }
Standard input is empty
2990733744 2420451352 176970772 590170435 1650479162 3292922431 4089906105 790610030 1185888101 1234575978 1954139223 2659364515 452025615 1406820007 3075430335 3201023919 207935689 2263476597 332017178 944817215 2228001369 4284139446 474044228 2539131930 3310189592 2465684741 4067266981 3958815516 1839286464 3045814116 2206350139 1868677896 3244503748 3166350033 1044026689 3546782010 667543326 4000225141 3133837834 2816903353 2169403372 2603558733 3529799424 1399143115 2909012511 2073965526 3986732917 1473142988 561855011 3922909062 3387493847 4156577890 661810797 2700961878 3431480628 2103669992 1275464015 3804799692 3712330318 2280241430 3586787750 1258461878 4096139142 1734453342 2313181704 60522686 1028999194 1332594556 3121697421 7180506 3791582924 2278231944 1914785353 2609017108 1943659456 2171128590 57509613 1387081685 366171551 3245361363 2326956916 1428774976 1436596813 615735423 3433829595 3516694769 1201485578 185340554 1310758462 3155291255 2158205043 742938338 1222384767 2445719949 2470744547 3588283366 748667889 3215351221 4187815009 1710325260 42529041 3415678446 1867559062 1188510488 1678915584 1865060411 2958640081 499416813 1103268528 951491036 1323786967 4250130290 4105542341 3544807100 3001331010 240341308 341375574 68670767 2753609073 2638369757 459331352 3196575368 1780872595 4118359310 2319199187 3484512336 633341193 880813993 3860306994 3752232580 3277343782 3535164626 156369546 272146028 1912605298 1155898147 1463685070 2550689532 1531026199 3407798187 2527908360 246091758 3249162256 3477662048 1905148362 2496858937 1344547298 1617552821 1310741008 2166440983 3273500602 1705728211 3927155201 741998261 3488563982 3661041237 74500859 1834882143 3819933552 1293056152 1650222821 1133045423 3755937010 2674947836 2330663502 1110289678 3649695641 1038214487 2997794558 3289244253 2075286866 131453900 1345589601 342699644 1957786502 415484580 2801289978 1222836680 3792392984 2542766077 3256533986 1502947321 2423245213 3633052170 1795233407 1502414429 3109384510 4205271327 3705565898 1751397274 2946128807 1482972252 3798343148 539556638 406369687 3835776552 1841991264 1979437943 1446037066 2859560244 4023160502 1444707038 1980973202 44514143 1078106476 2636024334 2582323843 3730227419 2225287146 1650403864 2342962345 3749951071 4292357555 1616079879 1307752637 522094267 3288690477 478425361 3273660889 2004121418 3431893561 194701459 286066150 238353345 1152021486 3296564101 2696779623 3856114356 3348314581 2972679488 4066030562 393815302 1819436872 3712286891 1180570574 2877850767 3956771872 3233066600 1633621756 663176871 3202270336 2357427047 832630824 2799967844 1456937270 1367977273 1178582716 1795568211 863477843 2340936130 3961668776 1254400079 2383398283 185854327 3784160625 3221281135 376143493 3596428104 2155075904 116944304 330539691 145143184 92686765 3761931758 660341404 840277385 1279701383 4134375284 2099756290 1603519494 4008778185 2875210407 189334853 3012858796 3861983026 1491375151 2555000230 4001386643 1551330988 3588600801 2627001013 3909748727 2958902082 880808656 1279972217 2036805882 1312089141 2173623299 1597886877 2795285373 2614558370 1828130233 855320000 3716698053 1824773614 2175992904 3674554690 327709133 52473852 397739521 3626456742 624523654 1813427628 1042214688 2134092773 3524368189 1209081926 3659162474 1317737981 3491178590 1465014122 2392348726 1187081442 1714154202 1050942983 492670129 1062102415 3850960212 1203846692 3074787540 2451753809 4225160420 1263277847 192068521 2233196839 1160853946 3787990007 2017122059 2489663312 3280004112 3471619683 3565309843 2763604488 3872319579 2331283602 554195313 905838853 4003579937 2860159127 3202723879 3822181862 724200513 3085686594 4281364059 1883412879 3849467135 3692393437 3319050654 3683308850 3250945128 3893201678 3156830859 2409329569 3664987539 1983188914 585148092 2133559055 2528541819 3387272584 150834352 3903997609 96366964 1374044072 3115643817 1860987979 2292423772 3954254462 3290195538 3316608793 3857230314 650195875 2679038875 2012582046 697213923 1848733864 3151516035 2246470113 3797004979 2785076996 1669495380 2645914035 3675102089 709177354 2549737944 1013592241 3411598730 3325822079 1979801225 474219020 2214856119 762434496 2200939921 743120248 1048589612 1841540568 1715565082 3495359455 4206513926 1189320923 770292772 3423194427 146438172 2896914718 3167104605 3779463151 687530348 4024695789 4204709369 1417296129 1856654512 1037903528 1279990160 1576953758 4255292517 125344261 1534503556 3842739085 1580554469 4202466276 525543338 2435450764 1892134565 3019027362 3250364055 265816710 105453935 3157282708 2853788988 759210139 1583983627 736817548 2691756800 2038837847 988858350 649436211 1594161369 200033462 3146809657 1420495535 3717026862 3182028111 961567182 4084835163 3908765466 4115038462 177587539 249331549 588935490 369857435 1896587659 76785146 3560531582 2667030774 3290508550 3473531976 733221597 946311619 3223053342 1800906088 3613876007 4202206110 3954339714 2552991019 2665414160 3701009349 4030320983 113931761 3877829327 480189204 3014144803 2864026720 1805691915 4118867504 3076832832 389494123 3357419441 3132087292 3464016294 3410568267 2584283707 15621736 367588175 1545583773 3793691107 650960062 2544105646 1496024832 3346625613 2535688996 2236904241 3049622407 267101139 1634732610 2565893535 1046986369 2284711019 3891943362 4209686927 2558602954 3529903639 59883018 873210622 709072786 242504508 3016922209 1790638892 1293004416 1975700732 2973312685 2328861789 47732143 1294846882 2187658792 2596476014 402618385 2985177324 3420648122 1637467023 3240917338 3324886486 802158644 2595552355 1635464475 3694673858 2564228918 929961571 4003992299 2695508374 3573450770 1131577150 2570443967 2131974306 3150986049 3254346408 163173574 246856952 725161968 250826471 277862595 1741038747 211422713 3895950814 1607077174 544016242 3024126785 470273115 2191123068 1706616544 3734021172 2053293993 1401866217 2851693990 3994509000 1325165163 2346556792 1509565114 305979744 2578298761 3421507254 539922249 1220133082 1691289466 2752505624 3980839309 3158100360 2846777819 2320084426 843752960 3910668219 3980605960 2492290770 1336188304 415347928 3902258886 2166879115 1168527829 2203652980 509403834 2394733431 845766005 2514118157 186354619 3147950199 2388612496 11033817 1731424592 823157376 851175199 3757559485 1768458378 1906876392 63016448 951815147 367141488 2315880814 2844135381 1233147471 2936641289 844808324 2645912251 4054757712 1717790288 2568358323 609162762 3912999370 1296552237 2989676671 1146395427 4056369254 4186287740 2149614242 3401535116 2480863137 793804258 1013343907 3900163971 4269557536 1844719820 3287227209 2554825271 4284367534 262443094 3384521008 721462948 2524584938 1461641957 1341558074 1615412337 530903066 3185849529 221860290 3092031259 2670768356 866438437 694708773 4268786152 580527527 3627586014 3106296759 1831295808 3518569214 89455728 48401001 3289725989 3765112724 46622405 4093640663 3054164329 3987008788 1523108342 1392157181 2739602568 450348798 158114974 2121522183 1431886182 1099173966 1409722390 2447150938 1480627786 4258093695 3210947319 1366757387 2501054781 2989167992 3926362684 968794277 3111090055 567046223 1413993348 2502643736 1055838616 2801280383 4037192513 1174754460 3330820041 913406989 1665033671 2862045762 1852333204 1739685642 2903804045 4283915508 541125057 2364992471 1888271715 1468498358 2135851236 2982986464 823347558 3780184422 904062985 2658401124 1272850170 742772524 2436419700 2782008614 1327118625 2360469023 1039496032 1935445300 3356063728 63783368 960716657 3450981217 460009094 934045116 71057287 2691162145 857022914 1843385903 2826818037 220517731 3582065306 2759173819 1312129348 1156393739 2473040113 2834873634 2210173089 3375524930 2506033241 524029836 3063621131 2685135285 277516546 2434866384 4261873876 2142749226 1407986572 1593579796 2241550902 3239312323 3828750262 2734912006 2844478563 3205304385 869396299 1039945190 1469480345 1726294837 2668306703 3709762190 214444404 1656081897 1044060722 3697939502 4239780242 1225781034 2226092358 283986832 1650007631 3805685617 2253734307 885661637 1080024471 2207158761 1719241644 1175705043 1341958732 414988922 1911738598 2473933807 172707344 2426262902 2634288720 1409651617 695938110 190574572 3207106022 3345644997 3347927689 1056858971 2993292571 340137402 2293147527 3317123623 3605922867 600462926 1783647623 3402709988 318907531 3977674211 2488890105 2849908323 2735943812 1797082059 2192981699 689046465 3580035981 1472047896 2100037753 606333646 1256699571 716917357 1545945662 1195031505 750381441 3452989925 2821748146 392663784 214399187 1034787913 997649919 3121300636 3944831518 583233592 1678735936 3711881938 2316857139 4236307415 3622345658 3303851750 3051435685 2536990769 304284754 3515998782 1624549519 1852966099 3296420412 3398573075 1790644971 3578540838 1083270418 431198124 4224584066 703835158 3116092796 2581155331 1738173280 1491460973 1249508749 73533574 621515652 267465623 1567855028 2937638507 211741556 3373434097 2119086587 2182571251 1830694610 3702466906 651138300 549159451 3616027483 412160556 349225947 1765612397 1245156827 267697656 3279312552 1861171373 1029118941 1594110625 1289674743 840602903 2389057203 3734156003 2132803934 1448759938 640832768 3070863017 1176658472 851888710 2584048853 2153052190 3575569782 4181638405 4254379107 4032570586 1444695929 4252628463 3514780291 2144231036 1622508343 2250843427 3772010746 3852448851 3653968429 3259182487 1062245011 2513374325 1592265426 2258686220 3974995640 3331793642 1903235256 2490405655 1929135559 1540710550 1119700490 442546599 2003878252 4233243837 107470384 598842185 2212542934 3992174982 554520810 2701032007 1635038825 584636517 2379050921 1325880895 3689106523 1495979552 3254697720 1026734159 2235066147 302251919 972559107 2087651617 3509314953 3859034961 248344155 2528996488 1666398415 380467327 3743052106 837600312 3355099293 2324255988 2838460711 3288243589 3137452246 1669100067 3957813172 6766489 700175486 3986025687 3776841612 2653217997 3162804258 1536529783 864642758 1181444845 23155786 1680715902 955757190 3089800793 3174695640 3541966590 4294845480 839337219 550530270 2747386964 1455616038 1589356542 1822635349 821565108 1562336998 2156368412 1341352656 3427100961 1667038630 3785213119 74971994 673144361 307554265 687793068 216690029 1742552728 998522254 1184244113 91632696 2181868216 40548311 639790099 3276089966 3751638031 3442371159 2311333136 1654133301 632764606 2625942624 2181410197 2980064794 918205389 1269385913 3814727986 2405048358 1277131006 917982260 3401591163 3399789918 124644548 825869533 1414607895 1839515458 3255852782 3592418586 54513202 995385073 3243952626 3306906035 3514151271 1749005573 3199410249 723730056