Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define R_A 16807L
- #define R_M 2147483647L
- #define R_Q 127773L
- #define R_R 2836L
- LONG gSeed = 1;
- /******************************************************************************************/
- LONG GetSRand(void)
- {
- return gSeed;
- }
- /******************************************************************************************/
- void MySRand(LONG s)
- {
- gSeed = s;
- if (gSeed == 0)
- gSeed = 1;
- }
- /******************************************************************************************/
- LONG LongRandom(void)
- {
- LONG hi,lo,test;
- hi = gSeed / R_Q;
- lo = gSeed % R_Q;
- test = R_A * lo - R_R * hi;
- if (test > 0)
- gSeed = test;
- else
- gSeed = test + R_M;
- return gSeed;
- }
- /******************************************************************************************/
- double DoubleRandom(void)
- {
- return LongRandom() / (double) R_M;
- }
- /******************************************************************************************/
- short MyRandom(short max)
- {
- return (short) (DoubleRandom() * max);
- }
- /******************************************************************************************/
- /* JAB 7/20/96 */
- /* Implemented Random Number Table to speed encryptions */
- /* short gEncryptTable[512]; */
- short far *gEncryptTable;
- void InitializeEncryption();
- void InitializeEncryption()
- {
- int i;
- LONG saveSeed;
- saveSeed = GetSRand();
- MySRand(666666L);
- gEncryptTable = (short far *) NewPtrClear(sizeof(short)*512);
- for (i = 0; i < 512; ++i)
- gEncryptTable[i] = MyRandom(256);
- MySRand(saveSeed);
- }
Advertisement
Add Comment
Please, Sign In to add comment