随机数生成与应用全解析
1. 随机数生成器概述
在计算机尚未出现的时代,随机数序列只能通过物理方法生成,例如掷骰子、抛硬币、从瓮中抽取编号球,或者分析电子管产生的噪声。为了帮助相关领域的工作者,还出版了大量预先计算好的随机数序列表。
如今,许多应用,如蒙特卡罗(MC)和随机动力学模拟,都需要在计算机上生成数百万个随机数序列。伪随机数生成领域已相当成熟,其生成的序列具有确定性和可重复性。在液态计算机模拟中,随机数生成的原始速度通常并非关键因素,因为程序的其他部分往往更耗时。
随机数应满足以下要求:
- 统计分布 :应符合所需的分布,最常见的是在单位区间 (0, 1) 上均匀分布,更复杂的分布可由此推导得出。
- 无相关性 :需要计算两点、三点及更高阶的联合分布来验证。
- 长周期 :序列通常会在一定周期后重复,重复周期应尽可能长。
有一些针对随机数生成器的测试集,如 Diehard(Marsaglia,1995 年提出,后由 Brown 在 2015 年更新为 Dieharder)和 TestU01(L’Ecuyer 和 Simard,2007 年开发,可在线获取)。使用劣质随机数生成器可能会带来严重问题,尽管 MC 模拟有时似乎对其细节不敏感,但偶尔也会导致灾难性结果。因此,专业的分子模拟人员要么研究内置生成器使用的算法,要么从库中选择已知行为的生成器进行替换。需要注意的是,软件库的内容可能会随版本变化。Gnu 科学库和 Intel Math Kernel 库中都提供了一些随机数生成器。
随机数生成与应用详解
超级会员免费看
订阅专栏 解锁全文
903

被折叠的 条评论
为什么被折叠?



