vc++ 如何产生0-1分布随机数?并且用蒙特卡罗方法进行验证?

我有无敌掌 2009-04-12 08:09:07
先产生一组十万个随机数,然后要验证他的确是均匀分布?
...全文
411 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
pathuang68 2009-04-14
  • 打赏
  • 举报
回复
上面的说法都不对,请看看伪随机序列的书,大部分伪随机序列的书对这个都讲得非常透彻。如果你实在搞不定,请给我email:pathuang68@163.com

欢迎访问我的blog:
http://blog.sina.com.cn/dragonpat
jjcang 2009-04-13
  • 打赏
  • 举报
回复
可以参阅boost的随机算法,
大脸猫脸大 2009-04-13
  • 打赏
  • 举报
回复
srand(time(0));

a = rand()%(nMax-nMin+1)+nMin;


firsthym 2009-04-13
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 jjcang 的回复:]
可以参阅boost的随机算法,
[/Quote]
学习了,

很奇怪,为什么这些没分的帖子,就没有所谓的高手加入呢?
我有无敌掌 2009-04-13
  • 打赏
  • 举报
回复
十万个的,,我不能用RAND,需要用同余算法产生,然后需要验证。
jack_yyp 2009-04-12
  • 打赏
  • 举报
回复
方法上面给了。
验证是否均匀分布很容易,你可以弄一个散列算法,检查出现值分布。
其实不需要验证的,肯定是均匀分布。因为随机数表本来就是一个均匀的分布,只不过他是以一个种子作为参数的伪随机数罢了
RoadingAnt 2009-04-12
  • 打赏
  • 举报
回复
srand(time(NULL));
a=rand()/(RAND_MAX+1);
这样得到的随机变量a服从(0,1)之间的均匀分布
jiachao1989 2009-04-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 bebusy 的回复:]
srand(time(NULL));
a=rand()/(RAND_MAX+1);
这样得到的随机变量a服从(0,1)之间的均匀分布
[/Quote]
UP

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧