随机数产生方法

随机数产生方法

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 }
原文地址:https://www.cnblogs.com/hoojjack/p/5018771.html