生成随机数的几种方法

 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 }

随机数生成太多了,网上一搜一大片, 慢慢积累把

 

 

posted @ 2014-03-31 10:28  xidianzyh  阅读(503)  评论(0编辑  收藏  举报