随机数生成:原理、方法与应用
随机数的概念
在许多场景中,我们常常需要生成随机数。比如游戏程序、模拟现实世界的程序,几乎都需要具备生成随机数的能力。在测试复杂程序时,也往往需要随机输入来验证程序在不同条件下的运行情况。
真正的随机性只存在于自然界。例如,闪电会在哪里击中是随机的,即便知道即将有暴风雨,也无法准确预测闪电的落点。英国的天气也是随机的,尽管有强大且昂贵的计算机用于天气预报,但预报结果仍经常出错。
一个数是否为随机数需要放在特定的序列背景中判断。单独的数字“2”不是随机数,但如果它出现在序列“46, 1011, 874, 34, 998871”之后,就有可能是随机数序列中的一个值。当一个数出现在序列中,且根据序列中前面的数无法预测下一个数时,这个数就是随机数。不过,这并不意味着连续的数字必须不同,像序列“4, 4, 4, 4”也可能是随机序列的一部分,比如连续掷骰子可能会出现这样的结果。
由于数字计算机是确定性的,对于给定的一组输入值,计算总是会产生相同的结果。所以,除非硬件出现严重问题,任何程序代码产生的结果都不是真正的随机数。计算机只能生成伪随机数序列,因为这些数是由计算机算法产生的,并非真正的随机。为了方便,后续我们将直接使用“随机数”来指代伪随机数。
概率、分布与熵
生成随机数涉及一些统计学概念,下面为你简要介绍。
概率
概率是一个介于0到1之间的值,用于衡量事件发生的可能性。0表示事件不可能发生,1表示事件必然发生。例如,掷一个均匀的骰子,掷出6的概率是1/6,掷出任何一个可能值的概率都是1/6,而掷出任意一个数的概率是1。
一般来说
超级会员免费看
订阅专栏 解锁全文
252

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



