
x%3求余,只可能是0,1,2,因此,这里的随机数是0,1,2三个,赋值给b。
不建议直接使用rand()%N这种随机数生成使用,特别是当N比较大时候。
一般RAND_MAX = 32767,这样算下来,不太准确的随机数。
更好的方法如下:
double r = rand()/(double(RAND_MAX) +double(1)) // [0,1)b = r*3 + 1 // [1,3]
机械工业出版社有一本linux C的,好像是函数的你可以看看,写的我觉得那就非常的好
VC
int rand( void )
The rand function returns a pseudorandom integer in the range 0 to RAND_MAX.
至于 RAND_MAX 在 stdlib.h 中有定义,为 32767
可能是库不同???难道linux下的C···不一样?
具体我也不知道不好意思
linuxC我没弄过···
rand()是表示产生随机数的一种函数,多应用于循环语句当中进行判断。
比如说n=rand();
switch(n)
{case1.......
case2......}
这些都是都可能被执行的,因为数字是随机的。
扩展资料:注意
rand()函数可以用来产生随机数,但是这不是真真意义上的随机数,是一个伪随机数,是根据一个数,我们可以称它为种了,为基准以某个递推公式推算出来的一系数,
当这系列数很大的时候,就符合正态公布,从而相当于产生了随机数,但这不是真正的随机数,当计算机正常开机后,这个种子的值是定了的,除非你破坏了系统,为了改变这个种子的值,C提供了 srand()函数,它的原形是void srand( int a) ,
功能是初始化随机产生器既rand()函数的初始值,即使把种子的值改成a从这你可以看到通过sand()函数,可以产生可以预见的随机序列。
参考资料来源:rand函数-百度百科欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)