抽奖这件事真的是随机的吗?
![](http://static.careerengine.us/api/aov2/http%3A_%7C__%7C_mmbiz.qpic.cn_%7C_mmbiz_jpg_%7C_yZPTcMGWibvumUhungIwOsJlR2vpwKkK5PnabZa7KFNzUicQ58KxKwzfTUsZ9KykOBZZmqaH4n4XNJTT7me48YfQ_%7C_0%3Fwx_fmt%3Djpeg.jpg)
![](http://static.careerengine.us/api/aov2/https%3A_%7C__%7C_mmbiz.qpic.cn_%7C_mmbiz_gif_%7C_yZPTcMGWibvsDBq8Wdjr1qGlY0o2qST6lIKStr6TW5WeUiaFDWicYaS3PjPL3iapI7g3KI4YlRicMnpAB42h3ibfceUw_%7C_640%3Fwx_fmt%3Dgif.jpg)
最近支付宝锦鲤的出现,敲碎了 300 万人的暴富梦。。。
抽奖这种随机发生的事情,为啥放到自己身上来说就等于 “ 绝对不可能发生 ” 呢。
![](http://static.careerengine.us/api/aov2/https%3A_%7C__%7C_mmbiz.qpic.cn_%7C_mmbiz_%7C_yZPTcMGWibvvLx6F9VHHuduYRiaYhaE4bwqTYwafP7FI1icrObcfmSwjiaxXQsfbicRf4vJa91vViaCAFOsW1FCbo6Qw_%7C_640%3Fwx_fmt%3Dpng.jpg)
玩儿 lol , 60% 暴击率连打别人三下都不暴击,别人 15% 暴击率打你连续暴击两回把你反杀了。。。
人生就是如此反复无常。
![](http://static.careerengine.us/api/aov2/https%3A_%7C__%7C_mmbiz.qpic.cn_%7C_mmbiz_png_%7C_yZPTcMGWibvumUhungIwOsJlR2vpwKkK5jmsfXGS7Nrzay12g82Lgl4aL9K2NcGQtIzbpDKQ0C0icyWPmWvYVcKg_%7C_640%3Fwx_fmt%3Dpng.jpg)
![](http://static.careerengine.us/api/aov2/https%3A_%7C__%7C_mmbiz.qpic.cn_%7C_mmbiz_%7C_yZPTcMGWibvvLx6F9VHHuduYRiaYhaE4bwtQl2Kab2QkuicjD11wPJ2Ciap1Tt8oKsuuKGgtKdV2MX9MLqK3k8Oo2Q_%7C_640%3Fwx_fmt%3Dpng.jpg)
人生反复无常是没错,但是上面由计算机产生的 “ 随机 ” ,真的是反复无常的吗?
![](http://static.careerengine.us/api/aov2/https%3A_%7C__%7C_mmbiz.qpic.cn_%7C_mmbiz_png_%7C_yZPTcMGWibvumUhungIwOsJlR2vpwKkK5iaFicibFENJaENJt8Ficm10d1jKov1VKbmnqxwibo82IDNPQ1iaWicrdicQia8g_%7C_640%3Fwx_fmt%3Dpng.jpg)
计算机产生的随机数,其实是伪随机 “ pseudorandom ” ,或者说是模拟出来的随机数。
换句话说,你打怪不掉装备,不出暴击被人反杀,其实都是 “ 被安排好了的 ” 。
![](http://static.careerengine.us/api/aov2/https%3A_%7C__%7C_mmbiz.qpic.cn_%7C_mmbiz_jpg_%7C_yZPTcMGWibvumUhungIwOsJlR2vpwKkK51f6wibOaliaxDIVyDzY7VcDw0YMp1Ag34XUZlk0OJ00S4Fzb5vxicgicew_%7C_640%3Fwx_fmt%3Djpeg.jpg)
最直观的例子。。比如你音乐播放软件里的 “ 随机 ” 播放功能,其实只是把你的歌单打乱然后依次放一遍。
这不算是随机吗?
![](http://static.careerengine.us/api/aov2/https%3A_%7C__%7C_mmbiz.qpic.cn_%7C_mmbiz_%7C_yZPTcMGWibvvLx6F9VHHuduYRiaYhaE4bwhMCCSHh5icKVdWNUdy3bxxKvFMbzVic0Z2h0dic1UnHrf0F3Ur77a3pQQ_%7C_640%3Fwx_fmt%3Dpng.jpg)
但事实上,几乎所有播放软件的随机播放,同一首歌曲只会放一遍,而且如果你选择 “ 上一首 ” 就一定能听到上一首。
![](http://static.careerengine.us/api/aov2/https%3A_%7C__%7C_mmbiz.qpic.cn_%7C_mmbiz_png_%7C_yZPTcMGWibvumUhungIwOsJlR2vpwKkK5MicjSJDm9nlnIjib8AicuZqQM4UrQ2jVChpluwhJ6fbaial0LXhWDYicAkQ_%7C_640%3Fwx_fmt%3Dpng.jpg)
一般情况下,电脑是无法自己产生真随机的。
你想想,计算机的一切行为都是人类写代码设定好的,因此在没有输入的情况下,你问它随便凭空给个玩意。。。它还真就给不了!
![](http://static.careerengine.us/api/aov2/https%3A_%7C__%7C_mmbiz.qpic.cn_%7C_mmbiz_%7C_yZPTcMGWibvvLx6F9VHHuduYRiaYhaE4bwTeSTp1V9K9M5ayCaxYfgzqFMOMicGZq0QN7Gol2zpbCf2N7pNUmoQMQ_%7C_640%3Fwx_fmt%3Dpng.jpg)
于是。。。就有了各种各样的,用来让计算机生成随机数的伪随机算法。
C++ 里的伪随机数计算公式
![](http://static.careerengine.us/api/aov2/https%3A_%7C__%7C_mmbiz.qpic.cn_%7C_mmbiz_jpg_%7C_yZPTcMGWibvumUhungIwOsJlR2vpwKkK5NUBNXXb6xJIzb50YnQicib7RAFmJ44JBpR4pBpQR7S0Yic9SK2TcibmCYQ_%7C_640%3Fwx_fmt%3Djpeg.jpg)
这种算法一般是个函数:你输入一个东西,就会输出一个东西。
比如你要模拟掷骰子,给这个算法输入一个数字 [ 561981980 ] ,限制结果是 1 - 6 的整数,运行一下输出一个数列:[ 3, 3, 4, 1, 6, 5, 1, 3, 2, 5 ] 。 ( 运行环境:差评君的大脑 )
然后。。。运行那个随机算法以后,这些生成的随机数就在那儿了,你每次管计算机要个骰子,它就按照数列的顺序给你一个,不和你说,就以假乱真了。。。
![](http://static.careerengine.us/api/aov2/https%3A_%7C__%7C_mmbiz.qpic.cn_%7C_mmbiz_gif_%7C_yZPTcMGWibvumUhungIwOsJlR2vpwKkK5HAm1T6rrbTQKplS80cITo8sibmKphO1GwIBb0T8QicDGibZ3hcoD9ppicg_%7C_640%3Fwx_fmt%3Dgif.jpg)
![](http://static.careerengine.us/api/aov2/https%3A_%7C__%7C_mmbiz.qpic.cn_%7C_mmbiz_%7C_yZPTcMGWibvvLx6F9VHHuduYRiaYhaE4bwbRzDYYu9iasx9mUuEb4ZzyIvohic9iaYYIiag545E5fsNE2WSlr8yZIjiag_%7C_640%3Fwx_fmt%3Dpng.jpg)
大多数随机数算法,都要个随机数种子,来给函数作计算,一旦种子确定下来以后,生成的 “ 随机数 ” 其实是有个确定的随机数表的。
但并没有啥关系,只要函数够复杂,周期性非常长,那么这个产生的随机数表就几乎无法预判。
游戏 《 文明6 》 生成游戏地图就可以选择种子
![](http://static.careerengine.us/api/aov2/https%3A_%7C__%7C_mmbiz.qpic.cn_%7C_mmbiz_png_%7C_yZPTcMGWibvumUhungIwOsJlR2vpwKkK5sOgrwhgzD7LaoDLic2FxTTzZvhicALP6FvzPSAg2OEVTgyWEoT9DXAzw_%7C_640%3Fwx_fmt%3Dpng.jpg)
因此生成的函数对伪随机算法很重要。
在网上有人做过测试,把随机数可视化之后可以生成噪点图来看。
这是 C 语言在 linux 环境下调用随机数的排列结果⬇️
![](http://static.careerengine.us/api/aov2/https%3A_%7C__%7C_mmbiz.qpic.cn_%7C_mmbiz_png_%7C_yZPTcMGWibvumUhungIwOsJlR2vpwKkK5MuPMh85jw8MCHWiaSz1WOyicHWJM1TOVKMxjTW0qwed8aPEJia7qgon2A_%7C_640%3Fwx_fmt%3Dpng.jpg)
![](http://static.careerengine.us/api/aov2/https%3A_%7C__%7C_mmbiz.qpic.cn_%7C_mmbiz_%7C_yZPTcMGWibvvLx6F9VHHuduYRiaYhaE4bwftcgDb7MKHYcTo9VhvpWkTX0RScWIh1AibIE3L8Ao3iaT9O4mZLNRamA_%7C_640%3Fwx_fmt%3Dpng.jpg)
可以看到,分布很平均。
不过在 Windows 下的 PHP 随机数算法,就能看出些规律,说明效果没有上面那个好。
![](http://static.careerengine.us/api/aov2/https%3A_%7C__%7C_mmbiz.qpic.cn_%7C_mmbiz_png_%7C_yZPTcMGWibvumUhungIwOsJlR2vpwKkK5pwHaqtamrZlQRPG5eCuXfIeYZ9BicemRWyJZH4SqCMx9iaiaPLY2rydlg_%7C_640%3Fwx_fmt%3Dpng.jpg)
![](http://static.careerengine.us/api/aov2/https%3A_%7C__%7C_mmbiz.qpic.cn_%7C_mmbiz_%7C_yZPTcMGWibvvLx6F9VHHuduYRiaYhaE4bw7A5QXcuCMd6hpEbo5lFicuMHicSCPiberT1LDttgV4oqazQcsnp908BiaQ_%7C_640%3Fwx_fmt%3Dpng.jpg)
有的算法使用外部因素来产生种子,这种外部因素被叫做噪声源。
不少算法会调用当前系统时间当作随机数种子。
( 顺带科普一下:现代计算机里的时间其实是一个很大的整数,代表 1970 年 1 月 1 日以后到现在过了多少秒,再折算成年月日就有了计算机记录的日期时刻,这个整数理论上的上限是 2 的 32 次方,看着挺大,其实到 2038 年就会用完,到时候咋办工程师们还在讨论 )
![](http://static.careerengine.us/api/aov2/https%3A_%7C__%7C_mmbiz.qpic.cn_%7C_mmbiz_png_%7C_yZPTcMGWibvumUhungIwOsJlR2vpwKkK5TEshg2PrJChmVksdk5e5BtKnywe9Tgt9vG8hflJEKSiak6IvzPHjacw_%7C_640%3Fwx_fmt%3Dpng.jpg)
这个办法理论上够随机了,毕竟啥时候需要随机数是人来决定的,而人是感情的动物,做事儿极其没有规律。。。
但是时间这个事情,在某种程度上是依旧可预测的。
因此还有更进一步的算法,例如 Linux 内核里有一套方法,从使用计算机硬件的人身上获取噪声。
这个噪声可以是两次键盘敲击的时间间隔,某一次鼠标移动的距离。。。这些事情对计算机来说是不可预测的。
![](http://static.careerengine.us/api/aov2/https%3A_%7C__%7C_mmbiz.qpic.cn_%7C_mmbiz_png_%7C_yZPTcMGWibvumUhungIwOsJlR2vpwKkK59esSqMH1xJzJFeX6vUAFEHRZMp3IoEungH9CFS9cgia4OIwXyG97qQg_%7C_640%3Fwx_fmt%3Dpng.jpg)
这个方法从理论上来说,产生的是真随机数。
为啥是理论上来说呢?
![](http://static.careerengine.us/api/aov2/https%3A_%7C__%7C_mmbiz.qpic.cn_%7C_mmbiz_%7C_yZPTcMGWibvvLx6F9VHHuduYRiaYhaE4bwibgu0J0UF3JR1NDQb6Oia4tapqwwAVgwCHeNve19zL6htnv6WDqc7Kibg_%7C_640%3Fwx_fmt%3Dpng.jpg)
如果能搞清楚一颗骰子处的位置,桌子的材料,摩擦,空气阻力,投的人用多大的力。。。不管多复杂,其实理论上通过数学和物理学工具是可以算出结果的。
人的行为也类似,人的当时的状态心情,和他从小到大的遭遇见闻,接受的教育是已知的情况下,理论上也许能算出一个人的下一步行动。
![](http://static.careerengine.us/api/aov2/https%3A_%7C__%7C_mmbiz.qpic.cn_%7C_mmbiz_%7C_yZPTcMGWibvvLx6F9VHHuduYRiaYhaE4bwPrFX8yTByaQxBThDwfK5WRoNiaqQyyTbWOkvvLibWnA8VZoyZ9EvYxTg_%7C_640%3Fwx_fmt%3Dpng.jpg)
嗯。。。发现没,这个问题再讨论下去,就马上要跳出物理学数学心理学的范畴,进入哲学的领域了。
![](http://static.careerengine.us/api/aov2/https%3A_%7C__%7C_mmbiz.qpic.cn_%7C_mmbiz_jpg_%7C_yZPTcMGWibvumUhungIwOsJlR2vpwKkK5AuRZELiaHeLhvuOouD0fQSJqiaynBXOEmcyZYYDZsCbR6QTtICZ68rbA_%7C_640%3Fwx_fmt%3Djpeg.jpg)
如果看了这篇文章导致你需要随机数的时候,再也不相信手机 APP 生成的结果的话。。。试试这个网站:random.org
绝对不是什么推广,国内上这个网站贼卡
![](http://static.careerengine.us/api/aov2/https%3A_%7C__%7C_mmbiz.qpic.cn_%7C_mmbiz_png_%7C_yZPTcMGWibvumUhungIwOsJlR2vpwKkK5Ge4cltSick8skJyeibnicVQUlcXNic2icGH9pb6x0DDGCQ2y5HiaRRvVO8LA_%7C_640%3Fwx_fmt%3Dpng.jpg)
这个网站可以帮你产生各种随机数,给定一个范围就能生成数字,生成随机数种子的噪音源取自大气里的分子运动现象,广义上来讲,也算真随机了。
![](http://static.careerengine.us/api/aov2/https%3A_%7C__%7C_mmbiz.qpic.cn_%7C_mmbiz_%7C_yZPTcMGWibvvLx6F9VHHuduYRiaYhaE4bwM75qu6MF8wwA39RkBmOn3WUrraZKYkJeAb16c4RendaQs7wQfPhibgA_%7C_640%3Fwx_fmt%3Dpng.jpg)
照样玩儿,因为一般情况下,伪随机拿来模拟真随机是够用的,我们的世界一直就是这么过来的。
![](http://static.careerengine.us/api/aov2/https%3A_%7C__%7C_mmbiz.qpic.cn_%7C_mmbiz_%7C_yZPTcMGWibvvLx6F9VHHuduYRiaYhaE4bwINmLCPQiajQEQ5WGpadCK3yicIPGQhJibu3ZQv3Dhp5XnkFODggpleD4g_%7C_640%3Fwx_fmt%3Dpng.jpg)
图片来源:
Giphydialogos.com.cy差评君在写文章途中来了一局文明6The Irish Times
参考资料:
CSDN用户@绘夜博文 《 随机数:真随机数和伪随机数 》知乎用户@雨亦奇《 伪随机的上位和真随机的逆袭 》维基百科 “ pseudorandom ”cnblogs @红字 《 内核随机数产生器 》
“ 我知道结尾有点像广告,但不是。。这破网站谁会做广告啊喂?! ”
![](http://static.careerengine.us/api/aov2/https%3A_%7C__%7C_mmbiz.qpic.cn_%7C_mmbiz_jpg_%7C_yZPTcMGWibvsDBq8Wdjr1qGlY0o2qST6l6NumcRQYjY9GauXEtK7DSzrsSfRlGQibY04wOTH6xv8kGhWCVu6rrzA_%7C_640%3Fwx_fmt%3Djpeg.jpg)
最新评论
推荐文章
作者最新文章
你可能感兴趣的文章
Copyright Disclaimer: The copyright of contents (including texts, images, videos and audios) posted above belong to the User who shared or the third-party website which the User shared from. If you found your copyright have been infringed, please send a DMCA takedown notice to [email protected]. For more detail of the source, please click on the button "Read Original Post" below. For other communications, please send to [email protected].
版权声明:以上内容为用户推荐收藏至CareerEngine平台,其内容(含文字、图片、视频、音频等)及知识版权均属用户或用户转发自的第三方网站,如涉嫌侵权,请通知[email protected]进行信息删除。如需查看信息来源,请点击“查看原文”。如需洽谈其它事宜,请联系[email protected]。
版权声明:以上内容为用户推荐收藏至CareerEngine平台,其内容(含文字、图片、视频、音频等)及知识版权均属用户或用户转发自的第三方网站,如涉嫌侵权,请通知[email protected]进行信息删除。如需查看信息来源,请点击“查看原文”。如需洽谈其它事宜,请联系[email protected]。