随机数产生方法
随机数产生方法
1、调用系统的随机种子。
1 /* 2 * 调用系统的时间随机种子数,产生随机数(0-32767) 3 * srand(time(0))为调用系统伪随机种子函数,用来初始化随机数发生器的随机种子 4 */ 5 void srandRandom(){ 6 int i; 7 srand((int)time(0)); 8 for(i=0;i<10;i++){ 9 printf("%.3f ",(rand()/32767.0)); 10 } 11 }
2、自定义产生随机数:
1 /* 2 * @author 3 * 自定义的随机数生成函数 4 * 利用的原理就是 m/base,其中m=(0,base),这里是实数除法 5 * 其中temp2,temp3步骤求temp1相对base的余数 6 * 这里定义一个r的地址变量,旨在每次利用前一个随机数的随机“种子” 7 * a,b的值可以自己自定义,base的值最好是2的整数倍 8 * 9 */ 10 double userDefinedRandom(double * r) { 11 double a, b, base, p; 12 double temp1, temp2, temp3; 13 a = 17.0, b = 139.0, base = 400.0; 14 temp1 = a * (*r) + b; 15 temp2 = (int) (temp1 / base); 16 temp3 = temp1 - base * temp2; 17 *r = temp3; 18 p = *r / base; 19 return p; 20 }