用c++生成随机数 为什么每次结果都一样 如何控制结果在0~1000之内

srand(unsigned(time(0)));
int a[500];
int i=0;
for(;i<500;i++);
{
a[i]=rand();

}

1 C++的随机数函数rand是一个伪随机数,从固定的初始种子计算得出。所以每次运行获取到的随机数序列是相同的。要解决这一问题,需要设置一个随机数种子,一般用当前时间作为种子。

代码为

srand(time(NULL));

2 要控制随机数的范围,可以使用模除操作,即%运算。

要控制结果在0~1000之间,可以使用代码

rand()%1001


具体代码如下:

#include<iostream>
#include <cstdlib>
#include <ctime>
int main()
{
    srand(time(NULL));
    int a = rand()%1001;
    cout <<a;
}
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-10-04
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
int main()
{

int a[500];
int i=0;
srand(unsigned(time(NULL)));
for(;i<500;i++)//;这里多了一个分号
{
a[i]=rand()%1001;//这样就控制 在了0~1000范围内了
printf("%d\n",a[i]);
}
return 0;

}本回答被提问者采纳
第2个回答  2012-03-03
a[i]=rand()%1001;
第3个回答  2012-03-03
同样求解

用c++生成随机数 为什么每次结果都一样 如何控制结果在0~1000之内
1 C++的随机数函数rand是一个伪随机数,从固定的初始种子计算得出。所以每次运行获取到的随机数序列是相同的。要解决这一问题,需要设置一个随机数种子,一般用当前时间作为种子。代码为 srand(time(NULL));2 要控制随机数的范围,可以使用模除操作,即%运算。要控制结果在0~1000之间,可以使用代码 ra...

为什么我编的c++程序用rand得到的结果总是同一个结果,求大神指点_百度...
rand是伪随机数,序列是固定的,所以你每次做出来的随机数看起来都一样。一般用当前时间作为种子生成随机数,这样就会不一样。头文件 #include <ctime> 在生成随机数前加一句 srand(unsigned(time(0)));

c++随机函数 两个随机数相加的结果 在一定范围内怎么写
比如你要限定在0 -100 那么你就写 (rand() + rand() )%100 如果你要再20-80之间 (rand() + rand() )%60 + 20 如果你要再-10 100之间 (rand() + rand() )%110 -10 依次类推,你懂的

C++库的随机数生成
在C语言中,rand()函数生成0到RAND_MAX(环境变量,范围可能是31位正数)之间的随机数。为了每次运行得到不同结果,使用当前unix时间初始化随机种子,如time(0)的值。C++中使用random头文件和default_random_engine,这为随机数生成提供了更灵活的途径。default_random_engine是一个可调用对象,可以与rand...

在C++中为什么我用srand()和rand()产生随机数一样
srand(int(time(NULL)));这里一个相同的种子产生的随机数总是一样的。在一秒之内int(time(NULL))的返回值是不会变的。想用上面的方法产生不一样的随机数,两次生成种子的时间要大于1秒。如果两次生成随机数的频率快,就要让srand(xx);中的XX值每次不一样,自己想想办法吧。

c++如何随机生成0和1
1)C++中的rand()函数可以得到一个0-RNDMAX之间的随机数,Randmax是一个宏,你可以把它理解成65535;2)使用rand()函数必须添加头文件,代码如下:include <cstdlib> 3) 得到0或1的随机数代码如下:int num=rand()%2;因为对2求余的结果不是0就是1,因此上面这句代码就得到了一个0或1的随机...

C++生成随机数rand\/srand函数
C++中生成随机数的核心在于rand()和srand()函数。在C++11之前,这两个函数已经能满足基本需求,但新版本提供了更多选择。rand()返回一个0到RAND_MAX之间的整数,尽管看似随机,其实是由种子决定的,且默认种子为1,导致每次运行结果固定。为获得不同序列,srand()用于设置rand()的种子,常用time函数作为...

c++中产生不重复的随机数
而且srand()指定了随机种子之后,可以多次使用rand()函数来产生随机数,而不必每次使用rand()都指定种子。为了确保程序每次运行时的随机种子都不一样,最好的办法是使用系统时间作为随机种子,比如:srand((int)time(NULL));●第二个问题:不重复。这个问题系统没有提供现成的函数,只能由编程者使用程序...

怎样用c++编写随机数?
在C\/C++中普通的随机数用randomize()与rnd()就好,产生 的数在0到1之间.如果要1到10的可以 randomize();\/\/产生随机数种子之类的,反正是 \/\/用了这句才能真正随机,不然的话,每次程序 \/\/运行结果都会同样的,不用这句也行,可以用 \/\/srand( (unsigned)time( NULL ) );\/\/前提是在程序前面得加...

C++随机数如何取一定范围内值 详细
之间,rand()上限储存在常量RAND_MAX中,在cstdlib中定义的 \/\/若想知道rand()能够生成的最大随机数,可将RAND_MAX发送到cout#include<ctime> \/\/包含time()根据当前时间返回一个数字using namespace std;int main(){ srand(time(0));\/\/根据当前时间生成随机数生成器种子 int num=1+rand()%101; return 0;}...

相似回答