c语言rand函数表达式 c语言rand函数怎么写

c语言rand()函数rand函数功能为获取一个伪随机数 。
int rand();所在头文件:stdlib.h
功能:返回一个伪随机数 。之所以说是伪随机数 , 是因为在没有其它操作下,每次执行同一个程序,调用rand得到的随机数序列是固定的(不是真正的“随机”) 。
为了使rand的结果更“真”一些,也就是令其返回值更具有随机性(不确定性),C语言在stdlib.h中还提供了srand函数,通过该函数可以设置一个随机数种子,一般用当前时间的毫秒数来做参数 。通过time(NULL)可以获取到当前时间的毫秒值(该函数位于time.h)中 。
使用rand的流程可以总结为:
1 调用srand(time(NULL))设置随机数种子 。
2 调用rand函数获取一个或一系列随机数 。
需要注意的是 , srand只需要在所有rand调用前,被调用一次即可 , 没必要调用多次 。
以下是随机获取10个整型值并输出的例子,辅助理解 。
#include stdio.h
#include stdlib.h
#include time.h
int main()
{int i;
srand(time(NULL));//设置随机数种子 。
for(i = 0; i10; i ++)//运行10次 。
printf("%d\n", rand()%101);//每次获取一个0~100随机整数并输出 。
return 0;
}
c语言randrand()%90+10:随机产生一个两位数[10,100).
rand()是产生随机数c语言rand函数表达式的函数(rand为randomc语言rand函数表达式的缩写),它产生一个[0,32767)之间一个随机数.
rand()常与srand()一起使用.
srand()是seed_randomc语言rand函数表达式的缩写,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]c语言rand函数表达式的值都相同.
因此要在for(i=0;i5;i++)之前加上如下语句:
srand ( (unsigned) time (NULL) );
srand()的形参要求是unsigned型,而time()的返回值是长整型,故需强制转换.而time(NULL)返回从1970年0时0分0秒到srand()语句执行时系统时钟所经历的秒数(这个数字很大达千万,故为长整型).
如果c语言rand函数表达式你需要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函数怎么写】}
其实从概律论来分析,用这两个函数产生的随机数并不随机,它们并不符合正态分数.
C语言 随机函数i++;是i=i+1;c语言rand函数表达式的缩写,c++之所以后面有++,就是因为有这样的缩写 。
rand()是个函数,每次调用会给c语言rand函数表达式你返回一个unsigned int数,即无符号整数,具体这个函数可以百度百科rand(),返回的数用伪随机算法 , 在c语言rand函数表达式你看起来是随机变化的,范围在0~4294967295之间
%是c++的整数运算符,如果写a%b就是求a除以b以后的余数
rand()生成的数大于0~100之间的范围 , rand()%100就会生成在0~99之间的随机整数
由于题目要求生成1~100之间的整数,所以用表达式rand()%100+1
如果想生成[0~3000)的随机数可以用表达式rand()%3000
如果想生成[a,b]范围的随机数,可以用表达式rand()%(b-a+1)+a来生成
比如要生成10~20之间的随机数 , 包含10和20在内,那么表达式是rand()%(20-10+1)+10
C语言中的rand()函数怎么用rand()
rand()函数用来产生随机数,但是 , rand()的内部实现是用线性同余法实现的,是伪随机数,由于周期较长 , 因此在一定范围内可以看成是随机的 。

推荐阅读