kir*_*off 2 c++ python random simulation probability
我听说计算结果对随机数发生器的选择非常敏感.
1我想知道是否与编程自己的Mersenne-Twister或其他伪随机例程相关以获得一个好的数字生成器.另外,我不明白为什么我不应该将本机或库生成器作为numpy中的random.uniform(),在C++中使用rand().据我所知,我可以自己构建生成器,用于除均匀以外的分布(反向重分配函数方法,极坐标方法).但使用一个内置发电机进行均匀采样是不是很邪恶?
2默认的'时间'种子有什么问题?应该重新播种代码样本中的种子和频率(以及为什么)?
3也许你对这些主题有一些很好的联系!
--edit更准确地说,我需要多分量优化例程的随机数,以及统一空间样本来初始化一些其他优化例程参数.我还需要蒙特卡罗方法的随机数(敏感性分析).我希望精确有助于找出问题的范围.
好吧,我不能谈论C++,但Python使用Mersenne Twister.所以没有必要在Python中实现自己的.此外,如果没有其他随机源,Python只使用系统时间作为种子; 这是一个依赖于系统的问题.另见os.urandom有关此内容的文档.
不过,编写自己的文章很有趣.MT维基百科页面上的伪代码清晰易懂.
当然通常的警告适用.这不是加密随机数生成器.并非所有大型列表的排列都可以由random.shuffle,等等生成.但对于您指定的用途,Mersenne Twister可能很好.
| 归档时间: |
|
| 查看次数: |
2493 次 |
| 最近记录: |