c语言的rand
⑴ c语言中的rand()函数怎么用
rand()
rand()函数用来产生随机数,但是,rand()的内部实现是用线性同余法实现的,是伪随机数,由于周期较长,因此在一定范围内可以看成是随机的。
rand()会返回一个范围在0到RAND_MAX(至少是32767)之间的伪随机数(整数)。
在调用rand()函数之前,可以使用srand()函数设置随机数种子,如果没有设置随机数种子,rand()函数在调用时,自动设计随机数种子为1。随机种子相同,每次产生的随机数也会相同。
rand()函数需要的头文件是:<stdlib.h>
rand()函数原型:int rand(void);
使用rand()函数产生1-100以内的随机整数:int number1 = rand() % 100+1。
srand()
srand()函数需要的头文件仍然是:<stdlib.h>
srand()函数原型:void srand (usigned int seed);
srand()用来设置rand()产生随机数时的随机数种子。参数seed是整数,通常可以利用time(0)或getpid(0)的返回值作为seed。
使用rand()和srand()产生1-100以内的随机整数:
srand(time(0));
int number1 = rand() % 100+1。
⑵ c语言中rand()函数怎么用
C语言中rand函数的使用方法如下:
一、基本使用
rand函数是C语言中的一个标准库函数,用于生成随机整数。其基本语法为:
c
#include // 包含stdlib库,该库包含rand函数
int rand; // 不需要传递参数
调用rand函数即可返回一个随机整数。
二、生成特定范围的随机数
为了生成特定范围的随机数,可以使用rand函数结合算术运算来实现。例如,要生成一个介于1到10之间的随机整数,可以使用以下代码:
c
int random_number = rand % 10 + 1; // 生成1到10之间的随机整数
这里使用模运算符来获取rand函数生成的随机数与10的余数,然后将结果加1,以确保生成的随机数在指定范围内。
三、使用srand函数设置随机数种子
为了保证每次程序运行时生成的随机数序列不同,可以使用srand函数来设置随机数生成器的种子。种子可以是任意整数,通常使用当前时间作为种子。使用srand函数可以确保每次运行程序时生成的随机数序列都是不同的。示例如下:
c
#include // 包含stdlib库,该库包含rand和srand函数
#include // 包含time库,用于获取当前时间作为种子
int main {
srandtime); // 设置随机数种子为当前时间
int random_number = rand; // 生成随机整数
// 其他代码...
return 0;
}
四、注意事项
使用rand函数时需要注意以下几点:
1. rand函数生成的随机数序列并不是真正的随机数,而是伪随机数。在需要更高质量的随机数时,可能需要使用更复杂的随机数生成库。
2. 为了确保每次运行程序时生成的随机数序列不同,应该在使用rand函数之前调用srand函数设置种子。通常使用当前时间作为种子是一个不错的选择。
⑶ 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;i<5;i++)
for(j=0;j<4;j++)
a[i][j]=rand()%90+10;
则从a[0][0]到a[5][4]的值都相同.
因此要在for(i=0;i<5;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;i<20;i++)
{a[i]=rand()%40+60;/*100-60=40*/
printf("%4d",a[i]);
}
}
其实从概律论来分析,用这两个函数产生的随机数并不随机,它们并不符合正态分数.