如何用C++产生随机数?

如题所述

//需要使用rand()和srand()函数//rand()为随机数函数, 产生[0,int型最大值)之间的整数数//srand(seed);//为初始化随机数种子函数//具体例子如下#include<stdio.h> //标准(std)输入输出(io)库, 内含printf()函数
#include<stdlib.h>//标准(std)操作库(lib), 内含srand(),rand()函数
#include<time.h>//时间库(time), 内含time()系统时间函数int GetRand()//产生随机数的函数
{
srand(time(NULL)) ;//通过系统时间初始化随机数种子//如果不设置随机数种子,则每次rand()函数的起始值都一样.
int n = rand()%181+20 ;// rand()为随机数函数, 产生[0,int型最大值)之间的整数数, 此值依系统不同而不同, 一般为2147483648, 可认为无穷// 通过rand()%181+20转化为[20,200]之间的整数 (注:rand()%181产生[0,180]之间的整数)
return n ; //返回这个整数
}
int main() //主函数
{
printf("%d",GetRand()) ; //输出一个随机数
}//希望对你有帮助
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-09-13
#include <iostream>
#include <ctime>
#include <vector>
#include <algorithm>

using namespace std;

vector<double> Rnd( int N )
{
srand( (unsigned)time(NULL) ); //以当前系统时间来实现随机数种子
vector<double> v(N);
for(int i=0;i<N;i++)
{
v[i] = (double)(rand()%11)/10;
} //如果需要更精细,可以%101然后除以100,也可以%1001后再除以1000

return v;
}

int main()
{
vector<double> v = Rnd( 100 ); //这个100,可以手动输入哦。呵呵。
copy( v.begin(),v.end(),ostream_iterator<double>( cout," " ) );

return 0;
}
第2个回答  2019-11-24
rand()这个函数就是产生随机数的,
想要一个范围的随机数,可以用取余数的方式
如取0~99之间的数,可以rand()%100
第3个回答  2006-12-08
正在开发审定中的 C++ 新版标准包括一个随机数生成器库,可以生成好几种常用随机分布类型的随机数。
不过传统的随机数函数还是标准 C 库中的 rand()。

// 设定随机数发生公式的种子值
srand( (unsigned)time( NULL ) );

// 获得随机数
int i = rand() % 4 + 1;
相似回答