C++中rand()是怎样定义的?

我想知道随机数产生的方法是怎么实现的,而不是这个函数怎么用... 我想知道随机数产生的方法是怎么实现的,而不是这个函数怎么用 展开
 我来答
asafish83
2007-10-18 · TA获得超过717个赞
知道小有建树答主
回答量:893
采纳率:0%
帮助的人:305万
展开全部
rand的内部实现是用线性同余法做的,他不是真的随机数,只不过是因为其周期特别长,所以有一定的范围里可看成是随机的,rand()会返回一随机数值,范围在0至RAND_MAX 间。在调用此函数产生随机数前,必须先利用srand()设好随机数种子,如果未设随机数种子,rand()在调用时会自动设随机数种子为1。rand ()产生的是假随机数字,每次执行时是相同的。若要不同,以不同的值来初始化它.初始化的函数就是srand()。

线性同余法见
http://www.itzhe.com/article_html/d9/48307.html
可以叫我表哥
2015-07-23 · 知道合伙人数码行家
可以叫我表哥
知道合伙人数码行家
采纳数:25897 获赞数:1464977
2010年毕业于北京化工大学北方学院计算机科学与技术专业毕业,学士学位,工程电子技术行业4年从业经验。

向TA提问 私信TA
展开全部
#include<iostream>
#include<fstream>
using namespace std;
int main()
{
ofstream cout("in.txt");
int num,n,m;
cin>>n>>m;//n是你要去多少随机数,m是取随机数范围.
srand((unsigned)time(NULL)); //设置时间种子
cout<<n<<endl;
for(int i=0;i<n;i++)
{
num=rand()%m+1; //这里..rand()取随机数,%m取0~m-1的随机数,%m+1取1~m的随机数
cout<<num<<endl; //每取一个输出一个
}
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
续坤亥帅
2019-11-24 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:27%
帮助的人:643万
展开全部
#include
#include
using
namespace
std;
int
main()
{
ofstream
cout("in.txt");
int
num,n,m;
cin>>n>>m;//n是你要去多少随机数,m是取随机数范围.
srand((unsigned)time(NULL));
//设置时间种子
cout<
评论
0
0
加载更多
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式