c语言rand函数原理 c语言rand函数怎么写

C语言 rand()函数

产生整数rand的原理是:

创新互联建站公司2013年成立,先为班戈等服务建站,班戈等地企业,进行企业商务咨询服务。为班戈企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

y=ax+b(mod n)其中,n一般是一个很大的素数。

a也是大素数。而且a,b,n都是常数。所以rand的产生决定于x,它被称为seed。

每一个seed都是上一次产生的y的函数。这样,如果直接取seed=y的话, 虽然产生的rand之间相关性甚小,但只要知道某个y,就能推知以后的rand。

参考:

C中,rand()是什么意思,有什么作用

rand()是表示产生随机数的一种函数,多应用于循环语句当中进行判断。

比如说n=rand();

switch(n)

{case1.......

case2......}

这些都是都可能被执行的,因为数字是随机的。

扩展资料:

注意

rand()函数可以用来产生随机数,但是这不是真真意义上的随机数,是一个伪随机数,是根据一个数,我们可以称它为种了,为基准以某个递推公式推算出来的一系数,

当这系列数很大的时候,就符合正态公布,从而相当于产生了随机数,但这不是真正的随机数,当计算机正常开机后,这个种子的值是定了的,除非你破坏了系统,为了改变这个种子的值,C提供了 srand()函数,它的原形是void srand( int a) ,

功能是初始化随机产生器既rand()函数的初始值,即使把种子的值改成a; 从这你可以看到通过sand()函数,可以产生可以预见的随机序列。

参考资料来源:rand函数-百度百科

c语言rand

rand()%90+10:随机产生一个两位数[10,100).

rand()是产生随机数的函数(rand为random的缩写),它产生一个[0,32767)之间一个随机数.

rand()常与srand()一起使用.

srand()是seed_random的缩写,seed意思是随机数种子.如果程序中未使用srand()函数.C系统默认为srand(0).如果有以下语句:

for(i=0;i5;i++)

for(j=0;j4;j++)

a[i][j]=rand()%90+10;

则从a[0][0]到a[5][4]的值都相同.

因此要在for(i=0;i5;i++)之前加上如下语句:

srand ( (unsigned) time (NULL) );

srand()的形参要求是unsigned型,而time()的返回值是长整型,故需强制转换.而time(NULL)返回从1970年0时0分0秒到srand()语句执行时系统时钟所经历的秒数(这个数字很大达千万,故为长整型).

如果你需要20个60到100的随机数.则可用如下语句实现:

#inlude stdio.h

main()

{int a[20},i;

srand ( (unsigned) time (NULL) );

for(i=0;i20;i++)

{a[i]=rand()%40+60;/*100-60=40*/

printf("%4d",a[i]);

}

}

其实从概律论来分析,用这两个函数产生的随机数并不随机,它们并不符合正态分数.


当前标题:c语言rand函数原理 c语言rand函数怎么写
本文URL:http://myzitong.com/article/ddiopcc.html