最新公告
  • 欢迎您光临欧资源网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • 支付宝里的伪随机“pseudorandom”是随机吗?(图)

    最近支付宝锦鲤的出现,粉碎了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《内核随机数生成器》

    “我知道结局有点像广告,但又不是……谁会给这个烂网站做广告?!”

    站内大部分资源收集于网络,若侵犯了您的合法权益,请联系我们删除!
    欧资源网 » 支付宝里的伪随机“pseudorandom”是随机吗?(图)

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    欧资源网
    一个高级程序员模板开发平台

    发表评论