当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 7 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : [问题]C语言生成随机数的问题
帖子发表于 : 2007-12-19 22:11 

注册: 2007-06-20 16:16
帖子: 25
送出感谢: 0 次
接收感谢: 0 次
因为要做一个小软件,需要生成随机数,请问使用
srand( ( unsigned )time( NULL ) ) rand( )
两个函数生成的随机数的范围是在多少?在VC下貌似是 0 ~ 32767,但我在GCC下试的时候数字好像很大,都在七到八位的样子,哪位大侠清楚C语言随机数生成机制的麻烦指导一下,不胜感激。
PS:因为是做一个仿真软件,需要的是绝对随机,就是每个数字的出现概率是相等的,不知道C的随机数生成机制是否符合这个条件?


页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2007-12-20 22:57 

注册: 2007-12-16 22:49
帖子: 3
送出感谢: 0 次
接收感谢: 0 次
直接用random(),或rand()就可以了阿

rand() % num; 就会产生一个0--num的随机数

random(num)与上述功能一置


页首
 用户资料  
 
3 楼 
 文章标题 : Re: [问题]C语言生成随机数的问题
帖子发表于 : 2007-12-23 17:38 

注册: 2006-09-20 19:56
帖子: 768
送出感谢: 0 次
接收感谢: 1
piston47 写道:
绝对随机

都是伪随机。

piston47 写道:
就是每个数字的出现概率是相等的

均匀分布。


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2007-12-23 18:25 
头像

注册: 2007-10-29 22:12
帖子: 5353
地址: 江苏南京
系统: OSX 10.9 + Ub 1304
送出感谢: 0 次
接收感谢: 5
要模拟绝对随机,这个可是世界性难题,楼主需求太强大了
或者你用/dev/urandom帮你产生一个?


_________________
佛经说,人有八苦: 生、老、病、死、求不得、怨憎、爱别离、五阴盛 故我苦!
圣经说,人有七罪: 饕餮、贪婪、懒惰、淫欲、傲慢、嫉妒和暴怒  故我有罪!

我这篇帖子里面没有任何攻击我们伟大的中华人民共和国政府和任劳任怨的人民公仆(和本论坛高素质的版主)的文字和含义;

特此声明!

有些事,我们明知道是错的,也要去坚持,因为不甘心;有些人,我们明知道是爱的,也要去放弃,因为没结局;有时候,我们明知道没路了,却还在前行,因为习惯了。

欢迎来我的新浪微博@me


页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2007-12-26 16:18 

注册: 2007-09-05 1:09
帖子: 156
地址: beijing
送出感谢: 0 次
接收感谢: 0 次
没有真随机


页首
 用户资料  
 
6 楼 
 文章标题 :
帖子发表于 : 2008-01-05 19:00 

注册: 2007-06-20 16:16
帖子: 25
送出感谢: 0 次
接收感谢: 0 次
已经找到解决的方法了,因为没有真正的随机,最后只能用rand( )%1000模拟一个0~1000的随机数


页首
 用户资料  
 
7 楼 
 文章标题 :
帖子发表于 : 2008-01-05 21:36 

注册: 2006-09-20 19:56
帖子: 768
送出感谢: 0 次
接收感谢: 1
产生符合给定分布的伪随机序列算法很多,但产生均匀分布的伪随机序列是很多算法的基础。

rand()用的MS是混合同余的办法,很多时候,在特定周期中,生成的伪随机序列相关系数还是比较大的,如果对非退化、相关系数等要求很高,还是自己写来得好,比如采用MT算法(那篇论文具体名字忘了)。

不过好的算法都不会像线性同余那样简单,要花些时间看才成。


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 7 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译