c++问题 rand() 默认产生的随机数范围
发布网友
发布时间:2022-04-22 14:12
我来回答
共3个回答
热心网友
时间:2023-10-17 16:11
rand()函数可以用来产生随机数;
rand()会返回一随机数值,范围在0至RAND_MAX 间。返回0至RAND_MAX之间的随机数值,RAND_MAX定义在stdlib.h,(其值至少为32767),运算的结果是一个不定的数,要看你定义的变量类型,int整形的话就是32767。
在调用此函数产生随机数前,必须先利用srand()设好随机数种子,如果未设随机数种子,rand()在调用时会自动设随机数种子为1。一般用for语句来设置种子的个数。
热心网友
时间:2023-10-17 16:11
随机数产生的范围是:0-0x7fff(也就是0到32767)
#include <stdlib.h>
#include <iostream>
#include <conio.h>
#include <time.h>
using namespace std;
void main()
{
srand( (unsigned)time( NULL ) ); //时间参数作为种子
for(int i=0;i<32767;i++)
{
cout<<rand()<<endl;
}
}
时间参数种子唯一,然后取的数目不大于32767个,基本能够保证产生的随机数唯一
热心网友
时间:2023-10-17 16:11
0到RAND_MAX,RAND_MAX的值视编译器而定一般不小于32767,你可以测试一下。可以用当前时间做随机数的种子保证产生的值不同。在程序开始之前调用srand((unsigned)time(NULL));就行了。