最近支付宝锦鲤的出现,粉碎了300万人的梦想。. .
为什么像抽奖这样的随机事情,当你把它放在自己身上时,就意味着“绝对不可能”?
还有平时的网游,任务材料装备你要,别人狂暴随意,生死不暴你。
玩lol,60%暴击率3次无暴击别人,别人15%暴击率连续2次击杀你。. .
生活就是这么变幻莫测。
等等。 。.
人生真是反复无常,但电脑产生的“随机”真的反复无常吗?
计算机生成的随机数实际上是伪随机“伪随机”,或模拟随机数。
也就是说,打怪不能丢装备,没有暴击也不能被击杀。事实上,这一切都是“安排好的”。
最直观的例子。. 例如,您的音乐播放器软件中的“随机”播放功能实际上只是将您的播放列表打乱并按顺序播放。
这不是随机的吗?
这不算数:如果它真的是随机的抽奖程序c语言思路,你可能会听到这首歌在重复,这不是一个小机会。
但实际上,在几乎所有播放软件的随机播放中,同一首歌只会播放一次,如果选择“上一曲”,就可以听到上一曲。
一般来说,计算机不能自己产生真正的随机性。
想想看,计算机的所有行为都是人类编程的,所以在没有输入的情况下,你要求它凭空给出一些东西。. . 实在是给不了!
但是现在有很多场景确实需要电脑“随机”做一些事情,比如游戏、抽奖等。. .
然后。. . 有多种伪随机算法用于使计算机生成随机数。
C++中的伪随机数计算公式
这个算法通常是一个函数:你输入一些东西,它输出一些东西。
例如,如果要模拟掷骰子,请在算法中输入一个数字 [ 561981980 ],将结果限制为 1 到 6 的整数,然后运行它以输出一个序列: [ 3, 3, 4, 1, 6 , 5, 1, 3, 2 , 5] 。(运行环境:差评人的大脑)
然后。. . 运行随机算法后,这些生成的随机数就在那里。每次你向计算机要一个骰子时,它都会按顺序给你一个。. .
在上面提到的场景中,数字[561981980]被称为随机数种子。
大多数随机数算法都需要随机数种子来计算函数。一旦确定了种子,生成的“随机数”实际上就有了一个确定的随机数表。
不过没关系,只要函数够复杂,周期很长,那么生成的随机数表几乎是不可预知的。
游戏《文明6》生成游戏地图选择种子
所以生成的函数对于伪随机算法很重要。
网上有人做过测试,将随机数可视化后,可以生成噪声图。
这是linux环境下C语言调用随机数的结果⬇️
如您所见,分布相当均匀。
但是在Windows下的PHP随机数算法中,可以看到一些规律,说明效果不如上面那一种。
除了算法,还有关于随机数种子的小题大做。
一些算法使用外部因素来生成种子,这种外部因素称为噪声源。
许多算法将当前系统时间称为随机数种子。
(顺便说一句,现代计算机中的时间其实是一个很大的整数,表示从1970年1月1日到现在已经过去了多少秒,然后再换算成大人的月日,就得到了计算机记录的日期和时间。这个整数理论上上限是2的32次方,看起来挺大的,其实到2038年就用完了,当时工程师还在讨论怎么办。)
这种方法理论上是足够随机的。毕竟,什么时候需要一个随机数是由人决定的,而人是情绪动物,行为极不规律。. .
但在某种程度上,时间还是可以预测的。
因此,还有其他算法,例如 Linux 内核中的一种方法,可以从使用计算机硬件的人那里获取噪声。
这种噪音可以是两次击键之间的时间间隔,也可以是鼠标移动的距离。. . 这些事情对于计算机来说是不可预测的。
理论上,这种方法会生成真正的随机数。
理论上为什么?
首先思考这个问题:我们所理解的现实世界中的“真正的随机性”真的是完全随机的吗?
如果你能弄清楚骰子在哪里,桌子的材料,摩擦力抽奖程序c语言思路,空气阻力,以及投掷者使用了多少力量。. . 无论多么复杂,其实都可以通过数学和物理工具从理论上计算出结果。
人类行为也类似。在一个人当时的状态和心情,以及他从小经历的事情,以及他所接受的教育都知道的情况下,理论上,或许可以推算出一个人的下一步行动。
行。. . 如果你没有找到,如果你继续讨论这个问题,你很快就会跳出物理学、数学和心理学的范畴,进入哲学领域。
如果您阅读本文并需要随机数,则不再信任移动 APP 生成的结果。. . 试试这个网站:random.org
绝对不是促销,这个网站是中国的小偷卡
本网站可以帮助您生成各种随机数。您可以在给定范围内生成数字。产生随机数种子的噪声源来源于大气中分子运动的现象。从广义上讲,它确实是随机的。
话虽如此,既然计算机中的随机性是“安排的”,我们还能玩游戏吗?
随便玩吧,因为一般情况下,伪随机足以模拟真正的随机性,而我们的世界一直都是这样。
至于现实生活中是否存在随机性,不用担心,好好生活,把问题留给科学家和哲学家。
图片来源:Giphydialogos.com.cy 差评来个文明游戏6 爱尔兰时报在写文章途中参考:CSDN用户@胡夜博文《随机数:真随机数与伪随机数》知乎用户@雨易奇《伪随机上层与真随机逆袭》维基百科《伪随机》cnblogs@Red Letter《内核随机数生成器》
“我知道结局有点像广告,但又不是……谁会给这个烂网站做广告?!”
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 欧资源网