注册 登录
编程论坛 C++教室

求助:求一 生成随机数 的完整的程序

black_eagle 发布于 2007-04-03 14:23, 720 次点击

比如用a[80]存储21~100这间生成的随机数,而生成的随机数如何得到?谢谢
6 回复
#2
cz5223212007-04-03 15:02
核心代码为:int i;
a[i]=rand()%100;
#3
yuyunliuhen2007-04-03 18:17

RAND 函数是伪随机数生成器,如果没有提供种子值,系统将生成它自己的可变种子值。如果用某个种子值调用 RAND,则必须使用可变种子值来生成随机数。如果用同一种子值多次调用 RAND,它将返回同一生成值。
可以利用srand( (unsigned) time ( NULL) )方法,因为每次运行时间不同

#include<iostream>
#include<time.h> //使用当前时间做种子
#include<stdlib.h>
using namespace std;

void main()
{
int i;
srand( (unsigned) time ( NULL) ); //初始化随机数
for (i=0;i<10;i++) //输出10个随即数
cout<<rand()%80+1<<endl;
}

[此贴子已经被作者于2007-4-3 18:18:37编辑过]

#4
bill88882007-04-03 23:23
我想总一下:要产生[-1,1]或者说[-1,0]之间的随机数该怎么写啊
#5
cpluslover2007-04-04 12:48
以下是引用yuyunliuhen在2007-4-3 18:17:08的发言:

RAND 函数是伪随机数生成器,如果没有提供种子值,系统将生成它自己的可变种子值。如果用某个种子值调用 RAND,则必须使用可变种子值来生成随机数。如果用同一种子值多次调用 RAND,它将返回同一生成值。
可以利用srand( (unsigned) time ( NULL) )方法,因为每次运行时间不同

#include<iostream>
#include<time.h> //使用当前时间做种子
#include<stdlib.h>
using namespace std;

void main()
{
int i;
srand( (unsigned) time ( NULL) ); //初始化随机数
for (i=0;i<10;i++) //输出10个随即数
cout<<rand()%80+1<<endl;
}


rand()%80+1 这个是什么意思呢,为什么%80呢还要加1呢,如果说要产生楼主说的限定范围
21~100有了限定应该怎么改呢

#6
wfpb2007-04-04 16:51
100-rand()%80;//产生21-80随机数
#7
wfpb2007-04-04 16:52
错了,呵呵,应该是:rand()%60+21
1