|
|
1.1 ! root 1: #define LENG 17 ! 2: static ! 3: long ary[LENG] = ! 4: { ! 5: 0x4B14EA50L, ! 6: 0x53C4A8E0L, ! 7: 0x67B1FA98L, ! 8: 0x9CFB3BB5L, ! 9: 0x18761AF1L, ! 10: 0x7970CD66L, ! 11: 0xDBAFE136L, ! 12: 0x3C31FC3EL, ! 13: 0x697B37DEL, ! 14: 0x07BC568BL, ! 15: 0xCAFD3967L, ! 16: 0xA8F48722L, ! 17: 0x4AB26824L, ! 18: 0xA479EE47L, ! 19: 0x5C7246E2L, ! 20: 0x954BF297L, ! 21: 0x20A713ADL, ! 22: }; ! 23: static ! 24: int i1 = 0; ! 25: static ! 26: int i2 = 12; ! 27: ! 28: srand(seed) ! 29: { ! 30: register i, j; ! 31: ! 32: for(i = 0; i < LENG; i++) { ! 33: ary[i] = 0x55555555L; ! 34: if(seed & 1) ! 35: ary[i] = 0xCCCCCCCCL; ! 36: if(seed & 0x8000) ! 37: ary[i] ^= 0xF0F0F0F0L; ! 38: seed >>= 1; ! 39: } ! 40: i1 = 0; ! 41: i2 = 12; ! 42: for(i = 1; i < 32; i += i) ! 43: do { ! 44: j = rand(); ! 45: ary[i1] += ary[i1] >> i; ! 46: ary[i2] += ary[i2] << i; ! 47: } while (i1); ! 48: } ! 49: ! 50: rand() ! 51: { ! 52: ! 53: if(++i1 >= LENG) ! 54: i1 = 0; ! 55: if(++i2 >= LENG) ! 56: i2 = 0; ! 57: ary[i1] += ary[i2]; ! 58: return((ary[i1] >> 15) & 0x7FFF); ! 59: } ! 60: ! 61: long ! 62: lrand() ! 63: { ! 64: ! 65: if(++i1 >= LENG) ! 66: i1 = 0; ! 67: if(++i2 >= LENG) ! 68: i2 = 0; ! 69: ary[i1] += ary[i2]; ! 70: return(ary[i1] & 0x7FFFFFFFL); ! 71: } ! 72: ! 73: double ! 74: frand() ! 75: { ! 76: ! 77: if(++i1 >= LENG) ! 78: i1 = 0; ! 79: if(++i2 >= LENG) ! 80: i2 = 0; ! 81: ary[i1] += ary[i2]; ! 82: return((ary[i1] & 0x7FFFFFFFL) / 2.147483648e9); ! 83: } ! 84: ! 85: nrand(n) ! 86: { ! 87: register long slop = 0x7FFFFFFFL % n, v; ! 88: ! 89: do{ ! 90: if(++i1 >= LENG) ! 91: i1 = 0; ! 92: if(++i2 >= LENG) ! 93: i2 = 0; ! 94: ary[i1] += ary[i2]; ! 95: v = ary[i1] & 0x7FFFFFFFL; ! 96: }while(v <= slop); ! 97: return(v % n); ! 98: } ! 99: ! 100: Srand(c1, c2, carray, clen) ! 101: int *c1, *c2, *carray, *clen; ! 102: { ! 103: register i, j; ! 104: ! 105: i = *c1; *c1 = i1; i1 = i; ! 106: i = *c2; *c2 = i2; i2 = i; ! 107: *clen = LENG; ! 108: for(i = 0; i < LENG; i++) ! 109: { ! 110: j = carray[i]; carray[i] = ary[i]; ary[i] = j; ! 111: } ! 112: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.