39、随机数生成:原理、方法与应用

随机数生成:原理、方法与应用

随机数的概念

在许多场景中,我们常常需要生成随机数。比如游戏程序、模拟现实世界的程序,几乎都需要具备生成随机数的能力。在测试复杂程序时,也往往需要随机输入来验证程序在不同条件下的运行情况。

真正的随机性只存在于自然界。例如,闪电会在哪里击中是随机的,即便知道即将有暴风雨,也无法准确预测闪电的落点。英国的天气也是随机的,尽管有强大且昂贵的计算机用于天气预报,但预报结果仍经常出错。

一个数是否为随机数需要放在特定的序列背景中判断。单独的数字“2”不是随机数,但如果它出现在序列“46, 1011, 874, 34, 998871”之后,就有可能是随机数序列中的一个值。当一个数出现在序列中,且根据序列中前面的数无法预测下一个数时,这个数就是随机数。不过,这并不意味着连续的数字必须不同,像序列“4, 4, 4, 4”也可能是随机序列的一部分,比如连续掷骰子可能会出现这样的结果。

由于数字计算机是确定性的,对于给定的一组输入值,计算总是会产生相同的结果。所以,除非硬件出现严重问题,任何程序代码产生的结果都不是真正的随机数。计算机只能生成伪随机数序列,因为这些数是由计算机算法产生的,并非真正的随机。为了方便,后续我们将直接使用“随机数”来指代伪随机数。

概率、分布与熵

生成随机数涉及一些统计学概念,下面为你简要介绍。

概率

概率是一个介于0到1之间的值,用于衡量事件发生的可能性。0表示事件不可能发生,1表示事件必然发生。例如,掷一个均匀的骰子,掷出6的概率是1/6,掷出任何一个可能值的概率都是1/6,而掷出任意一个数的概率是1。

一般来说

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值