发信人: egcs() 
整理人: zelor(2000-04-12 22:22:20), 站内信件
 | 
 
 
【 在 terry_mao99 (terry_mao) 的大作中提到: 】
 : 若要从1至33中任意取7个数字,
 : 组成一个没有排列顺序的数组,
 : 它的概率要求为672万分之一,
 : 请高手指教优秀算法!!!!
 :    .......
   这是一个利用 64 bit 线性反馈移位寄存器产生随机数的算法,其随机指标
 为 2^-64 = 5.4210108624275221700372640043e-20
 static unsigned __int32 __r32[2] = { 3141592653, 2718281828 };
 int GetNextInteger()
 {
 	int i;
 	unsigned __int32 t32, v32 = 0;
 
 	for(i = 0; i < 31; i++)
         {
 	        t32 = __r32[0] ^ (__r32[0] >> 2) ^ (__r32[0] >> 3) ^ (__r32[1 ] >> 31);
 
 	        __r32[0] = (__r32[0] >> 1) | (__r32[1] << 31);
         	__r32[1] = (__r32[1] >> 1) |(t32 << 31);
 
 	        v32 = (v32 << 1) |(__r32[0] & 1);
         	}
 	return v32;
 }
 
  -- ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.104.35.56]
  | 
 
 
 |