| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3875 人关注过本帖
标题:怎么生成真随机数啊。
只看楼主 加入收藏
lear
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2006-2-23
收藏
 问题点数:0 回复次数:4 
怎么生成真随机数啊。
在使用c++时。。需要用到随机数。。
故使用srand((unsigned)time(NULL));
创建种子。。
while(1)『
srand((unsigned)time(NULL));
for(i=0;i<n;i++)
a[i]=rand()%365+1;

但是之后的循环赋值
由于不停的循环,建种子 但 发现再一个时间段里产生很多组一样的数据
后思考可能是 该种子以时间为基础,因为时间过短 导致几次都是相同的结果
因为在一个时间区域中。。。
不知道怎么解决这个问题,生成无限的不同的随机数。
注:sleep()好像不能用
搜索更多相关主题的帖子: 随机数 NULL srand unsigned 种子 
2006-02-23 23:47
null
Rank: 1
等 级:新手上路
帖 子:52
专家分:0
注 册:2006-2-3
收藏
得分:0 
程序代码:

#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;

int main()
{
srand((unsigned)time(NULL));
for(int i = 0; i<100; i++)
{
int test = rand()%365 + 1;
cout<<test<<endl;
}
}


1. 坚决抵制日货 2. 批判共产主义,批判所谓的社会主义
2006-02-24 00:08
ElfDN
Rank: 4
等 级:贵宾
威 望:11
帖 子:291
专家分:0
注 册:2005-11-13
收藏
得分:0 

这个RAND就是伪随机数啊


2006-02-24 17:26
DarkHero
Rank: 1
等 级:新手上路
威 望:2
帖 子:191
专家分:0
注 册:2006-1-14
收藏
得分:0 
srand((unsigned)time(NULL));
建议把这句放在 while(1) 之前,这句意思就是setRand(时间)吧,就是把种子和时间关联起来,所以放在循环内不断关联没意义啊。
我运行怎么重复的很少?
还有,没有“真”随即数吧,因为现在的技术只能先找个“时间”种子,再以某种算法,返回一个“随即数”。。。都是伪的……

for( ; me.alive() ; ) { 淡泊名利,志存高远 } //Forever
2006-02-24 19:35
lear
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2006-2-23
收藏
得分:0 

谢了。。已经照楼上的试过了。。。对的。。

2006-02-24 22:29
快速回复:怎么生成真随机数啊。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016003 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved