⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zrand.c

📁 Calc Software Package for Number Calc
💻 C
📖 第 1 页 / 共 5 页
字号:
	    (FULL)0xcce8e5a7,(FULL)0xfa3af8eb,(FULL)0x04bba57d,(FULL)0xfb3e2237,	    (FULL)0x8a950434,(FULL)0x5d3b8785,(FULL)0xba3f8dcf,(FULL)0xce3112bd,	    (FULL)0x860d3051,(FULL)0x44904f55,(FULL)0x4ed3e98b,(FULL)0xcec8fed4,	    (FULL)0x25d01ea4,(FULL)0x4581698d,(FULL)0x9a9548e0,(FULL)0x11eb6828,	    (FULL)0xe911fac8,(FULL)0x796cb4c6,(FULL)0xb5fd813e,(FULL)0x2164cf26,	    (FULL)0xd5de640f,(FULL)0x4ac8e0f5,(FULL)0x8802ab4e,(FULL)0xe9e757d7,	    (FULL)0xf49dfcbd,(FULL)0x3c97de26,(FULL)0x6ee6dbe6,(FULL)0xc604881b,	    (FULL)0x57d6154e,(FULL)0xa7c22a6e,(FULL)0x877b3cc7,(FULL)0x234e2370,	    (FULL)0xdf1f8358,(FULL)0xc0bdb72b,(FULL)0xa95b7b55,(FULL)0x6522e0fc,	    (FULL)0x22344162,(FULL)0xba174c90,(FULL)0x75d48867,(FULL)0x712c9b2d,	    (FULL)0xe59f3700,(FULL)0x240f7e92,(FULL)0xad95d763,(FULL)0xe83cc2d4,	    (FULL)0x4336d717,(FULL)0x8509445a,(FULL)0xdfff1804,(FULL)0xf1e572c5,	    (FULL)0x623232dd,(FULL)0xed10eb5d,(FULL)0xd4f957e8,(FULL)0x9205ea1b,	    (FULL)0x2ff062f5,(FULL)0x4973a54f,(FULL)0xe8c48cd5,(FULL)0x26b018f1,	    (FULL)0xd1c7ed9f,(FULL)0x56908401,(FULL)0xdf89a247,(FULL)0x2e48937b,	    (FULL)0x2be47129,(FULL)0x9d53069b,(FULL)0xc048a2b0,(FULL)0x98069e3b,	    (FULL)0x1cd83f93,(FULL)0xf25b7d65,(FULL)0xe6f886c8,(FULL)0x2b004e6c,	    (FULL)0x5c635935,(FULL)0xf618442a,(FULL)0x7198e052,(FULL)0xa502ab5c,	    (FULL)0xa6c41b0b,(FULL)0xc14241a4,(FULL)0x7db9b18e,(FULL)0x720e845a,	    (FULL)0x4b713918,(FULL)0x2abb13e9,(FULL)0x7f52467d,(FULL)0x90fc0c20,	    (FULL)0x7868d348,(FULL)0x799c8ccd,(FULL)0x912a0ea4,(FULL)0xf4817ced,	    (FULL)0xc4903a57,(FULL)0xd68c0f4c,(FULL)0xe2b7934c,(FULL)0xa3171f29,	    (FULL)0x0b4ccc22,(FULL)0xb1158baa,(FULL)0x49a29eda,(FULL)0xf5d85553,	    (FULL)0x959442ef,(FULL)0x59d1a078,(FULL)0xa67fd518,(FULL)0xdb9b4a96,	    (FULL)0xd2870636,(FULL)0xcc7ca9ee,(FULL)0xecf59920,(FULL)0x548f021c,	    (FULL)0x571bc8c5,(FULL)0x25b7f4b6,(FULL)0x3a44f536,(FULL)0x4fa52747,	    (FULL)0xdf0ebdc2,(FULL)0xb246845f,(FULL)0x42058793,(FULL)0xdd8d68ae,	    (FULL)0x9f6c39fb,(FULL)0x3ba13328,(FULL)0x7b6b42af,(FULL)0x8bfdfbf3,	    (FULL)0x7fb2b3b0,(FULL)0xfb34c5ca,(FULL)0xd428e32a,(FULL)0x2345dcec,	    (FULL)0xad42b63e,(FULL)0x6891e850,(FULL)0x362c1381,(FULL)0x930642c8,	    (FULL)0x1886aff5,(FULL)0x13871e9b,(FULL)0x482bda55,(FULL)0xd0cf2407,	    (FULL)0x5069bc31,(FULL)0x125b5fc9,(FULL)0xf07dfa5d,(FULL)0x9b71d0a9,	    (FULL)0x6712e524,(FULL)0x55c044cc,(FULL)0xbb601978,(FULL)0xf0377358,	    (FULL)0x7fa51e8b,(FULL)0x152ad5f8,(FULL)0x9fcdd9af,(FULL)0xe5ebf478,	    (FULL)0x66ebce7e,(FULL)0x3d78e18c,(FULL)0xf36aa83f,(FULL)0x8246db72,	    (FULL)0x2c64c0a3,(FULL)0xcc6ddc6d,(FULL)0x0d91851e,(FULL)0xa758d687,	    (FULL)0x9488ee36,(FULL)0x24b20a6f,(FULL)0x09798197,(FULL)0xbe11ccdf,	    (FULL)0x99c1f4e3,(FULL)0x11aca015,(FULL)0x6437ac05,(FULL)0x40e89e36,	    (FULL)0x5af675f8,(FULL)0xc8bfc762,(FULL)0xb577e759,(FULL)0x6367c578,	    (FULL)0x615f0b74,(FULL)0x00380346,(FULL)0x8de07d81,(FULL)0xee964cc4,	    (FULL)0x859d9261,(FULL)0x17f6ac16,(FULL)0x3a6e2f6c,(FULL)0x092f4a17,	    (FULL)0xb9024b95,(FULL)0x79981a3d,(FULL)0x04f7f540,(FULL)0x36db1660,	    (FULL)0x65a2f1c8,(FULL)0xc36252cf,(FULL)0x124c9bd2,(FULL)0x705b6fde,	    (FULL)0x85db40ce,(FULL)0x31e58dda,(FULL)0x9f5e8d6d,(FULL)0x6342b1a5,	    (FULL)0xbd6d1d4d,(FULL)0x5c2c67d0,(FULL)0xba7e069d,(FULL)0x1fe5b46f,	    (FULL)0xac72e13c,(FULL)0x21c46c6c,(FULL)0x9eb8f52a,(FULL)0xb80c5fd5,	    (FULL)0xa74c92bc,(FULL)0x56c3aebf,(FULL)0xbf8c4196,(FULL)0xc1aff1fc,	    (FULL)0x754ad208,(FULL)0x2b1df645,(FULL)0xd46eeb50,(FULL)0x5c734600,	    (FULL)0x6a70a765,(FULL)0xe0ff1b12,(FULL)0x7a94547c,(FULL)0xd5416497,	    (FULL)0x4ea35206,(FULL)0x67b59d7c,(FULL)0x779203b4,(FULL)0x53be7146,	    (FULL)0x414026b8,(FULL)0x6b589fe5,(FULL)0x3083bfee,(FULL)0x9e81016c,	    (FULL)0x3b4b7671,(FULL)0xb23526b9,(FULL)0x7ee300ba,(FULL)0x4fa9ffb1,	    (FULL)0xad05fb21,(FULL)0x6217e212,(FULL)0xb294e6c2,(FULL)0xf5b3fcd3,	    (FULL)0x216beb2a,(FULL)0xac040bbe,(FULL)0x71d0e78c,(FULL)0x1f8d8a54,	    (FULL)0x9cfec96b,(FULL)0xb6d15b41,(FULL)0xd0508c78,(FULL)0xc5477845,	    (FULL)0xb4bba621,(FULL)0x5b486e81,(FULL)0xef4c4121,(FULL)0x90c35c94,	    (FULL)0xf6a6bc55,(FULL)0xefce7346,(FULL)0x25bdb9bb,(FULL)0xa27828d9,	    (FULL)0xa1f0b205,(FULL)0xe3a53095,(FULL)0xd9f208ab,(FULL)0x1bfa6093,	    (FULL)0x6842cdf4,(FULL)0xfb078f6a,(FULL)0x97133a38,(FULL)0x07806d72,	    (FULL)0xa3ce9592,(FULL)0x2c6c901b,(FULL)0xebc1b789,(FULL)0x1f0ab2cf,	    (FULL)0xe2d03d5e,(FULL)0x2ce81415,(FULL)0xaa9f2417,(FULL)0x7da45d5b,	    (FULL)0xdd800682,(FULL)0x3be4f76d,(FULL)0x364d72d3,(FULL)0xdbf4e4a3,	    (FULL)0x4fc59da5,(FULL)0xb538cccf,(FULL)0x487f66ec,(FULL)0xb0aa39d5,	    (FULL)0x87927d3d,(FULL)0x2fd28dfd,(FULL)0x5900c6b1,(FULL)0xd14e77f0,	    (FULL)0x5330c7b4,(FULL)0x2523fad2,(FULL)0xd82368a4,(FULL)0x991b5938,	    (FULL)0x2b9c1302,(FULL)0xb7c11443,(FULL)0x1394b116,(FULL)0xdb842db6,	    (FULL)0x78ed26d8,(FULL)0x3641548d,(FULL)0x0a61dacf,(FULL)0x274fa8ef,	    (FULL)0x112df6f1,(FULL)0xa554ba63,(FULL)0x6b50438d,(FULL)0x7b7fe985,	    (FULL)0xbb63bbad,(FULL)0xc9fa0042,(FULL)0xe27f00da,(FULL)0x3abf45d0,	    (FULL)0x9f87aabb,(FULL)0xd95faa15,(FULL)0x3488e7ae,(FULL)0x4a95012e,	    (FULL)0x0c642d04,(FULL)0x1be2bdb9,(FULL)0x8b4abf3e,(FULL)0x145c8881,	    (FULL)0x544cf17f,(FULL)0x7f9fb635,(FULL)0xcc78db70,(FULL)0xb8ab2f62,	    (FULL)0xb4242f9a,(FULL)0x8ee64bcd,(FULL)0x95dad129,(FULL)0xabd52858,	    (FULL)0xccf31141,(FULL)0xbe722c2f,(FULL)0x575e26a9,(FULL)0x7c330703,	    (FULL)0x361b79e4,(FULL)0x45d3e3b3,(FULL)0x54b2e6a6,(FULL)0x241163a7,	    (FULL)0xf7cacb77,(FULL)0x8f678d7d,(FULL)0x83211d19,(FULL)0x988a68a4,	    (FULL)0xba7836f6,(FULL)0x79599598,(FULL)0xeeda68bf,(FULL)0x4850c887,	    (FULL)0x8052ce25,(FULL)0xafa69a71,(FULL)0xbdd73573,(FULL)0x8b21efc6,	    (FULL)0xd0972493,(FULL)0x89dbae18,(FULL)0x537d9454,(FULL)0x560776bf,	    (FULL)0x165310f2,(FULL)0x3c009f78,(FULL)0x0160c3af,(FULL)0xa3680021,	    (FULL)0xa643bd40,(FULL)0x3353ec3c,(FULL)0x911dab02,(FULL)0x7e593f99,	    (FULL)0x4f676e89,(FULL)0x72d1ddd9,(FULL)0x6b43c0ea,(FULL)0xfd18b8bd,	    (FULL)0xddbd697d,(FULL)0x43cacef2,(FULL)0xacefe884,(FULL)0x2868a4d0,	    (FULL)0xa506f013,(FULL)0x5f377b63,(FULL)0x05ca662b,(FULL)0xeaa0975e,	    (FULL)0xeb433931,(FULL)0x3740e6b8,(FULL)0x08557948,(FULL)0xce85df00,	    (FULL)0x547e33f9,(FULL)0x784745fb,(FULL)0xe5c6f598,(FULL)0x4a1fc5d4,	    (FULL)0x768430a7,(FULL)0x85fa6fec,(FULL)0xd2332a51,(FULL)0x990d0c24,	    (FULL)0x33b676d5,(FULL)0x55245c2c,(FULL)0xe2bcfa71,(FULL)0xb1091519,	    (FULL)0xd23a28d8,(FULL)0x38521478,(FULL)0x9a573010,(FULL)0x9b794f89,	    (FULL)0x699bb486,(FULL)0x61d225e8,(FULL)0x1c2158b0,(FULL)0x21476d24	}#else   /\../\	FULL_BITS must be 32 or 64	/\../\	 !!!#endif};/* * default subtractive 100 table * * The subtractive 100 table in init_s100 has been processed 256 times in order * to preload the shuffle table.  The array below is the table before * this processing.  These values have came from LavaRnd. * * This array is never changed, only copied. */static CONST FULL def_subtract[SCNT] = {#if FULL_BITS == SBITS	    (FULL)U(0xc8c0370c7db7dc19), (FULL)U(0x738e33b940a06fbb),	    (FULL)U(0x481abb76a859ed2b), (FULL)U(0x74106bb39ccdccb5),	    (FULL)U(0x05a8eeb5c3173bfc), (FULL)U(0xefd5100d5a02e577),	    (FULL)U(0xa69271f74030b24a), (FULL)U(0x641282fc16fe22c5),	    (FULL)U(0x7aa7267c40438da3), (FULL)U(0x1fdf4abdc2d878d1),	    (FULL)U(0xd9899e7a95702379), (FULL)U(0x5ea8e217d02d7f08),	    (FULL)U(0x770587fe4d47a353), (FULL)U(0xde7d1bdd0a33a2b8),	    (FULL)U(0x4378c3c5900e7c45), (FULL)U(0x77c9447819a514f9),	    (FULL)U(0xfc5edb22843d1d32), (FULL)U(0x4fc42ce5e8ee5e6e),	    (FULL)U(0xc938713c8488013e), (FULL)U(0x6a318f0320ab0cac),	    (FULL)U(0x73e6d1a3ffc8bff3), (FULL)U(0x0cd3232a8ca96aa7),	    (FULL)U(0x605c8036905f770d), (FULL)U(0x4d037b008b8d04a2),	    (FULL)U(0x1ed81965cb277294), (FULL)U(0x408d9c477a254ff3),	    (FULL)U(0x8b68587ae26c7377), (FULL)U(0xcff191a48a48832f),	    (FULL)U(0x12d3df1d8aeb6fe6), (FULL)U(0xb2bf907e1feda37a),	    (FULL)U(0x4e5f77193bb5f39f), (FULL)U(0x33ebcf6f8f5d1581),	    (FULL)U(0x203c8e48d33654eb), (FULL)U(0x68d3656ef19c8a4e),	    (FULL)U(0x3ec20b04986eb2af), (FULL)U(0x5d73a03b062c3841),	    (FULL)U(0x836ce7095d4e49eb), (FULL)U(0x2310bc40c3f49221),	    (FULL)U(0x3868ee48a6d0cbf6), (FULL)U(0x67578aa64a43deb1),	    (FULL)U(0x6e3426c1150dfc26), (FULL)U(0xc541ccaa3131be30),	    (FULL)U(0xf7e57432cec7aab2), (FULL)U(0x2b35de998cb3c873),	    (FULL)U(0x7b9f77648663a5d7), (FULL)U(0x23b00e6aa771e5a6),	    (FULL)U(0x859c775ca9985d05), (FULL)U(0x99636ea16b692f1f),	    (FULL)U(0x8700ac703730800d), (FULL)U(0x461425024298a753),	    (FULL)U(0xea4a411b809e955f), (FULL)U(0x3119ad4033709dfb),	    (FULL)U(0xb76a6c6e5f01cb7c), (FULL)U(0x6109dc8a15984eaf),	    (FULL)U(0x5d686db9a5ca9505), (FULL)U(0x8e80d7613b7e6add),	    (FULL)U(0x79cbd718de6f6fd3), (FULL)U(0x40e9cd151da0f699),	    (FULL)U(0xe82158bab24f312d), (FULL)U(0x79a4c927f5e5c36b),	    (FULL)U(0xc25247c9a0039333), (FULL)U(0x936871161766d81d),	    (FULL)U(0x3c6a03b4a6741327), (FULL)U(0xc8a7b6e8c002f29a),	    (FULL)U(0x0e2a67c67bbd5ea3), (FULL)U(0x0929042d441eabc1),	    (FULL)U(0x7dbe232a25e82085), (FULL)U(0x8cfb26e544fbac3d),	    (FULL)U(0x8e40384d388ab983), (FULL)U(0x48dc1230554632f8),	    (FULL)U(0xab405048ab492397), (FULL)U(0x21c9e2f5a118e387),	    (FULL)U(0x484d1a8c343b61b5), (FULL)U(0xd49e3decab256f26),	    (FULL)U(0xe615c7fd78f2d2e3), (FULL)U(0x8442cc33ce6cc2ed),	    (FULL)U(0x0a3b93d844d4bbf6), (FULL)U(0x2d7e4efe9301de77),	    (FULL)U(0x33711b76d8790d8a), (FULL)U(0xc07dc30e44df77e7),	    (FULL)U(0xb9132ed09ddd508f), (FULL)U(0x45d06cf8c6fb43cc),	    (FULL)U(0x22bed18ad585dd7b), (FULL)U(0x61c6cced10799ffa),	    (FULL)U(0xd7f2393be4bd9aa9), (FULL)U(0x706753fbcfd55094),	    (FULL)U(0xf65a6713ede6e446), (FULL)U(0x8bf6dfae47c0d5c3),	    (FULL)U(0xfb4dfc179f7927d6), (FULL)U(0x12ebbc16e212c297),	    (FULL)U(0x43c71283a00a954c), (FULL)U(0x8957087ae7bd40a5),	    (FULL)U(0xb0859d7108344837), (FULL)U(0xfbf4b9a3aeb313f5),	    (FULL)U(0x5e66e5bece81823a), (FULL)U(0x09a11c6e58ad6da1),	    (FULL)U(0xc76f4316c608054f), (FULL)U(0xb582136146084099),	    (FULL)U(0x4210008f17a725ed), (FULL)U(0xe5ff8912d347c481)#elif 2*FULL_BITS == SBITS	    (FULL)0x7db7dc19,(FULL)0xc8c0370c,(FULL)0x40a06fbb,(FULL)0x738e33b9,	    (FULL)0xa859ed2b,(FULL)0x481abb76,(FULL)0x9ccdccb5,(FULL)0x74106bb3,	    (FULL)0xc3173bfc,(FULL)0x05a8eeb5,(FULL)0x5a02e577,(FULL)0xefd5100d,	    (FULL)0x4030b24a,(FULL)0xa69271f7,(FULL)0x16fe22c5,(FULL)0x641282fc,	    (FULL)0x40438da3,(FULL)0x7aa7267c,(FULL)0xc2d878d1,(FULL)0x1fdf4abd,	    (FULL)0x95702379,(FULL)0xd9899e7a,(FULL)0xd02d7f08,(FULL)0x5ea8e217,	    (FULL)0x4d47a353,(FULL)0x770587fe,(FULL)0x0a33a2b8,(FULL)0xde7d1bdd,	    (FULL)0x900e7c45,(FULL)0x4378c3c5,(FULL)0x19a514f9,(FULL)0x77c94478,	    (FULL)0x843d1d32,(FULL)0xfc5edb22,(FULL)0xe8ee5e6e,(FULL)0x4fc42ce5,	    (FULL)0x8488013e,(FULL)0xc938713c,(FULL)0x20ab0cac,(FULL)0x6a318f03,	    (FULL)0xffc8bff3,(FULL)0x73e6d1a3,(FULL)0x8ca96aa7,(FULL)0x0cd3232a,	    (FULL)0x905f770d,(FULL)0x605c8036,(FULL)0x8b8d04a2,(FULL)0x4d037b00,	    (FULL)0xcb277294,(FULL)0x1ed81965,(FULL)0x7a254ff3,(FULL)0x408d9c47,	    (FULL)0xe26c7377,(FULL)0x8b68587a,(FULL)0x8a48832f,(FULL)0xcff191a4,	    (FULL)0x8aeb6fe6,(FULL)0x12d3df1d,(FULL)0x1feda37a,(FULL)0xb2bf907e,	    (FULL)0x3bb5f39f,(FULL)0x4e5f7719,(FULL)0x8f5d1581,(FULL)0x33ebcf6f,	    (FULL)0xd33654eb,(FULL)0x203c8e48,(FULL)0xf19c8a4e,(FULL)0x68d3656e,	    (FULL)0x986eb2af,(FULL)0x3ec20b04,(FULL)0x062c3841,(FULL)0x5d73a03b,	    (FULL)0x5d4e49eb,(FULL)0x836ce709,(FULL)0xc3f49221,(FULL)0x2310bc40,	    (FULL)0xa6d0cbf6,(FULL)0x3868ee48,(FULL)0x4a43deb1,(FULL)0x67578aa6,	    (FULL)0x150dfc26,(FULL)0x6e3426c1,(FULL)0x3131be30,(FULL)0xc541ccaa,	    (FULL)0xcec7aab2,(FULL)0xf7e57432,(FULL)0x8cb3c873,(FULL)0x2b35de99,	    (FULL)0x8663a5d7,(FULL)0x7b9f7764,(FULL)0xa771e5a6,(FULL)0x23b00e6a,	    (FULL)0xa9985d05,(FULL)0x859c775c,(FULL)0x6b692f1f,(FULL)0x99636ea1,	    (FULL)0x3730800d,(FULL)0x8700ac70,(FULL)0x4298a753,(FULL)0x46142502,	    (FULL)0x809e955f,(FULL)0xea4a411b,(FULL)0x33709dfb,(FULL)0x3119ad40,	    (FULL)0x5f01cb7c,(FULL)0xb76a6c6e,(FULL)0x15984eaf,(FULL)0x6109dc8a,	    (FULL)0xa5ca9505,(FULL)0x5d686db9,(FULL)0x3b7e6add,(FULL)0x8e80d761,	    (FULL)0xde6f6fd3,(FULL)0x79cbd718,(FULL)0x1da0f699,(FULL)0x40e9cd15,	    (FULL)0xb24f312d,(FULL)0xe82158ba,(FULL)0xf5e5c36b,(FULL)0x79a4c927,	    (FULL)0xa0039333,(FULL)0xc25247c9,(FULL)0x1766d81d,(FULL)0x93687116,	    (FULL)0xa6741327,(FULL)0x3c6a03b4,(FULL)0xc002f29a,(FULL)0xc8a7b6e8,	    (FULL)0x7bbd5ea3,(FULL)0x0e2a67c6,(FULL)0x441eabc1,(FULL)0x0929042d,	    (FULL)0x25e82085,(FULL)0x7dbe232a,(FULL)0x44fbac3d,(FULL)0x8cfb26e5,	    (FULL)0x388ab983,(FULL)0x8e40384d,(FULL)0x554632f8,(FULL)0x48dc1230,	    (FULL)0xab492397,(FULL)0xab405048,(FULL)0xa118e387,(FULL)0x21c9e2f5,	    (FULL)0x343b61b5,(FULL)0x484d1a8c,(FULL)0xab256f26,(FULL)0xd49e3dec,	    (FULL)0x78f2d2e3,(FULL)0xe615c7fd,(FULL)0xce6cc2ed,(FULL)0x8442cc33,	    (FULL)0x44d4bbf6,(FULL)0x0a3b93d8,(FULL)0x9301de77,(FULL)0x2d7e4efe,	    (FULL)0xd8790d8a,(FULL)0x33711b76,(FULL)0x44df77e7,(FULL)0xc07dc30e,	    (FULL)0x9ddd508f,(FULL)0xb9132ed0,(FULL)0xc6fb43cc,(FULL)0x45d06cf8,	    (FULL)0xd585dd7b,(FULL)0x22bed18a,(FULL)0x10799ffa,(FULL)0x61c6cced,	    (FULL)0xe4bd9aa9,(FULL)0xd7f2393b,(FULL)0xcfd55094,(FULL)0x706753fb,	    (FULL)0xede6e446,(FULL)0xf65a6713,(FULL)0x47c0d5c3,(FULL)0x8bf6dfae,	    (FULL)0x9f7927d6,(FULL)0xfb4dfc17,(FULL)0xe212c297,(FULL)0x12ebbc16,	    (FULL)0xa00a954c,(FULL)0x43c71283,(FULL)0xe7bd40a5,(FULL)0x8957087a,	    (FULL)0x08344837,(FULL)0xb0859d71,(FULL)0xaeb313f5,(FULL)0xfbf4b9a3,	    (FULL)0xce81823a,(FULL)0x5e66e5be,(FULL)0x58ad6da1,(FULL)0x09a11c6e,	    (FULL)0xc608054f,(FULL)0xc76f4316,(FULL)0x46084099,(FULL)0xb5821361,	    (FULL)0x17a725ed,(FULL)0x4210008f,(FULL)0xd347c481,(FULL)0xe5ff8912#else   /\../\	FULL_BITS must be 32 or 64	/\../\	 !!!#endif};/* * Linear Congruential Constants * *	a = 6316878969928993981 = 0x57aa0ff473c0ccbd *	c = 1363042948800878693 = 0x12ea805718e09865 * * These constants are used in the randreseed64().  See below. */#if FULL_BITS == SBITSstatic CONST HALF a_vec[SHALFS] = { (HALF)0x73c0ccbd, (HALF)0x57aa0ff4 };static CONST HALF c_vec[SHALFS] = { (HALF)0x18e09865, (HALF)0x12ea8057 };#elif 2*FULL_BITS == SBITSstatic CONST HALF a_vec[SHALFS] = { (HALF)0xccbd, (HALF)0x73c0,				    (HALF)0x0ff4, (HALF)0x57aa };static CONST HALF c_vec[SHALFS] = { (HALF)0x9865, (HALF)0x18e0,				    (HALF)0x8057, (HALF)0x12ea };#else   /\../\	FULL_BITS must be 32 or 64	/\../\	 !!!#endifstatic CONST ZVALUE a_val = {(HALF *)a_vec, SHALFS, 0};static CONST ZVALUE c_val = {(HALF *)c_vec, SHALFS, 0};/* * current s100 generator state */static RAND s100;/* * declare static functions */static void randreseed64(ZVALUE seed, ZVALUE *res);static int slotcp(BITSTR *bitstr, FULL *src, int count);static void slotcp64(BITSTR *bitstr, FULL *src);/* * randreseed64 - scramble seed in 64 bit chunks * * given: *	a seed * * returns: *	a scrambled seed, or 0 if seed was 0 * * It is 'nice' when a seed of "n" produces a 'significantly different' * sequence than a seed of "n+1".  Generators, by convention, assign * special significance to the seed of '0'.  It is an unfortunate that * people often pick small seed values, particularly when large seed * are of significance to the generators found in this file. * * We will process seed 64 bits at a time until the entire seed has been * exhausted.  If a 64 bit chunk is 0, then 0 is returned.  If the 64 bit * chunk is non-zero, we will produce a different and unique new scrambled * chunk.  In particular, if the seed is 0 we will return 0.  If the seed * is non-zero, we will return a different value (though chunks of 64 * zeros will remain zero).  This scrambling will effectively eliminate * the human perceptions that are noted above. * * It should be noted that the purpose of this process is to scramble a seed * ONLY.  We do not care if these generators produce good random numbers. * We only want to help eliminate the human factors and perceptions * noted above. * * This function scrambles all 64 bit chunks of a seed, by mapping [0,2^64) * into [0,2^64).  This map is one-to-one and onto.  Mapping is performed * using  a linear congruence generator of the form: * *		X1 <-- (a*X0 + c) % m * * with the exception that: * *		0 ==> 0			(so that srand(0) acts as default) *		randreseed64() is an 1-to-1 and onto map * * The generator are based on the linear congruential generators found in * Knuth's "The Art of Computer Programming - Seminumerical Algorithms", * vol 2, 2nd edition (1981), Section 3.6, pages 170-171. * * Because we process 64 bits we will take: * *		m = 2^64			(based on note ii) * * We will scan the Rand Book of Random Numbers to look for an 'a' such that: * *		a mod 8 == 5			(based on note iii) *		0.01*m < a < 0.99*m		(based on note iv) *		0.01*2^64 < a < 0.99*2^64 * * To help keep the generators independent, we want: * *		a is prime * * The choice of an adder 'c' is considered immaterial according (based * in note v).	Knuth suggests 'c==1' or 'c==a'.  We elect to select 'c' * using the same process as we used to select 'a'.  The choice is * 'immaterial' after all, and as long as: * *		gcd(c, m) == 1		(based on note v) *		gcd(c, 2^64) == 1 * * the concerns are met.   It can be shown that if we have: * *		gcd(a, c) == 1 * * then the adders and multipliers will be more independent. * * We will obtain the values 'a' and 'c for our generator from the * Rand Book of Random Numbers.	 Because m=2^64 is 20 decimal digits long, * we will search the Rand Book of Random Numbers 20 at a time.	 We will * skip any of the 100 values that were used to initialize the subtractive 100 * generators.	The values obtained from the Rand Book of Random Numbers are: *

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -