生成随机数的几种方法
1 static uint64_t s[ 16 ] = { 2 0xAAAAAAAAAAAAAAAAULL, 0xAAAAAAAAAAAAAAAAULL, 0xAAAAAAAAAAAAAAAAULL, 0xAAAAAAAAAAAAAAAAULL, 3 0xAAAAAAAAAAAAAAAAULL, 0xAAAAAAAAAAAAAAAAULL, 0xAAAAAAAAAAAAAAAAULL, 0xAAAAAAAAAAAAAAAAULL, 4 0xAAAAAAAAAAAAAAAAULL, 0xAAAAAAAAAAAAAAAAULL, 0xAAAAAAAAAAAAAAAAULL, 0xAAAAAAAAAAAAAAAAULL, 5 0xAAAAAAAAAAAAAAAAULL, 0xAAAAAAAAAAAAAAAAULL, 0xAAAAAAAAAAAAAAAAULL, 0xAAAAAAAAAAAAAAAAULL 6 }; 7 8 static uint64_t __inline xrand(void) { 9 static int p; 10 uint64_t s0 = s[ p ]; 11 uint64_t s1 = s[ p = ( p + 1 ) & 15 ]; 12 s1 ^= s1 << 31; // a 13 s1 ^= s1 >> 11; // b 14 s0 ^= s0 >> 30; // c 15 return ( s[ p ] = s0 ^ s1 ) * 1181783497276652981LL; 16 }
随机数生成太多了,网上一搜一大片, 慢慢积累把