我们知道计算机并不会真正意义上的随机

@Ta 2021-02-14发布,2021-02-14修改 4435点击

我们知道计算机并不会真正意义上的随机,计算机里所有的随机都是伪随机的。如果你知道他的随机数是怎么来的,只要算力够强大。那么随机就能预言出来。
如果我们这个世界上的随机也是伪随机的,比如洗牌看起来是随机,实际上这种也是伪随机,只要你会算洗牌的方法那么牌在那里就是绝对的,那么算力够,那么预言是不是真的就能实现。

本消息来自粉金版 爱欧博客
回复列表(13|隐藏机器人聊天)
  • @Ta / 2021-02-14 / /

    没错,在你洗牌的时候我已经预测到你抽出来的是一张纸牌了
    红米1s(绿)

  • hik
    @Ta / 2021-02-14 / /

    如果让一只猴子在打字机上随机地进行按键,如果一直不停的这样按下去,只要时间达到无穷时,这只猴子就几乎必然可以打出任何给定的文字,甚至是莎士比亚的全套著作也可以打出来。
    https://cway.top

  • @Ta / 2021-02-14 / /

    @胡椒舰长,我感觉物理随机也是伪随机的,比如洗牌,摇骰子。以及随机的天气。看似是随机的实际上是有很多我们不知道的因素

    本消息来自粉金版 爱欧博客

  • @Ta / 2021-02-14 / /
    随机不是随机?
  • 000
    @Ta / 2021-02-14 / /

    虽然自身确实无法生成真随机数,不过结合各类传感器,借助内部物理元件电压/温度/频率瞬时数值等等外部参数后就能生成真随机数了。

  • 666
    @Ta / 2021-02-14 / /
    短期的预言看细微之处 近期的预言看大体走势 远期的预言靠脑子臆想 短则几个月的长则几年的最长也就二十年的 超过二十年的没见过预言准的 而且预言只能给你弄个大致 能预言到某一件事的 纯粹就是给你一把钥匙给你一万把锁 你慢慢怼吧总会遇到差不多能怼开的  
  • @Ta / 2021-02-24 / /
    @hik,悖论,只提到时间无穷大,但是猴子会死
  • @Ta / 2021-02-24 / /

    @老子会游泳@hik,我认为猴子打字机理论不成立,因为:

    1. 找不到无限多只猴子。
    2. 猴子种群很难繁衍无限多时间。
    3. 在猴子种群完全灭绝前完成该工作的概率无限趋近于0。
  • @Ta / 2021-02-24 / /
    moba游戏的暴击率也是伪随机,比如英雄联盟
  • @Ta / 2021-02-24 / /

    @老虎会游泳,数学上是成立的。现实中是无法证明的。以后可以尝试用计算机模拟
    小米MIX2s(白)

  • @Ta / 2021-02-24 / /

    LOL暴击对于我来说就是随机的。在25%暴击的情况下,下一次是不是暴击我不知道。我无法干预结果 中间的过程我也不知道。如果参照物是LOL程序员,这个就是伪随机。因为跟实现的算法有很大关系。程序员视角这个随机完全可以预测出来。这仅仅是一把游戏,如果多了我也可以通过统计去预测暴击几率。
    总结一下就是 我无法通过模型进行预测的就是随机,模型有一点点能预测的我叫伪随机,完全能预测的就不是随机了
    小米MIX2s(白)

  • @Ta / 2021-02-24 / /

    @是猫不是虎@拒绝柳岩99次,LOL暴击是有补偿机制的,所以不是伪随机,更不是真随机,而是非随机。
    也就是说,游戏首先用伪随机数生成器计算是否暴击,但是如果你脸黑,计算结果极差,连续N次不暴击,那补偿机制就会触发,下一次一定会暴击。相反,如果你运气极好,计算结果是短时间内多次暴击,那下一次一定不暴击。

    这和部分游戏的必需品开箱子类似。比如跑跑卡丁车手游的“宾果车”,表现为抽奖,结果也是随机给出的,每个人最终花的钱也确实不一样。但是玩家都知道,基本上只要花多少钱就一定能开出来,没有人会担心自己脸黑完全开不出。所以虽然看着是抽奖,但是大家购买的心态完全不是抽奖,而是奔着“我一定会得到”的目的去的,他们也确实都能得到,花的钱也全是那个范围,无一例外。

    所以,这些例子中看起来是“随机”的机制都不是随机,也不是单纯的伪随机,而是被人为控制的。因为如果不人为控制,使用均匀分布伪随机数生成器,那么对于“连续攻击几次可以触发暴击”这个问题,我们就会得到如下分布:

    图片.png

    我们称这种分布为正态分布。比如,上图中游戏的暴击几率为1/9,那么你就有约19%的几率恰好9次暴击一次,但是你还有15%的几率8次暴击一次,12%的几率12次暴击一次,1.5%的几率4次暴击一次,1%的几率14次暴击一次,以及(可能,我没有计算,纯目视)0.1%的几率20次暴击一次!

    0.1%的几率看起来很小,但是乘上一场游戏内你要攻击的次数,就绝非一个小数目。如果一场游戏你攻击一千次,那就很可能遇到一次这种情况。如果你攻击一万次,那就很可能遇到十次这种情况。

    二十次暴击一次,平常你可能不在意,但是如果是关键团战中呢?如果你因为暴击迟迟不触发直接输掉比赛了呢?此时你会有什么感想?“你告诉我暴击几率为1/9,结果20次才触发暴击,这合理?”

    这不合理,这对游戏的公平性影响极大。如果团战中有时就算玩家再努力,暴击迟迟不触发也于事无补。有时就算玩家再消极,随随便便就能点出十连暴击秒杀敌人。那这个游戏可以说任谁都不想玩。如果在电竞比赛中发生这种事件,游戏的竞技公平性甚至“电竞价值”也会大打折扣。

    所以,我们必须去掉极端值。我们要随机,让玩家无法预测下一次会不会暴击。但是我们也要公平,不能让好运和霉运在团战中“太随机”的出现。所以现代游戏的普遍做法是扔掉极值,只取中间部分。也就是说:

    • 如果你连续暴击太多次,以后就一定不会暴击。
    • 如果你连续不暴击太多次,以后就一定会暴击。
    • 有代码保证发生极端情况的概率为0,次数也为0。
    • 但在补偿机制触发之前和触发之后,你的暴击结果依然是伪随机的,预测下次是否一定会暴击依然很难。

    此时,该事件就不再是纯粹的随机事件,也不再是纯粹的伪随机事件了。

  • @Ta / 2021-02-24 / /

    至于充值开箱子的游戏,特别是那些就连“必需品”也以抽奖形式出售的游戏,就更存在这个问题了。如果采用均匀分布伪随机数生成器,那就一定会有极少数人真的命中曲线的最末端。而《大部分人花几百就抽到的东西我花几万也没有抽到》这种新闻只要曝出来一起,对游戏的正常运营就是一种致命打击。

    所以,代码必须保证极端情况不仅发生概率为0,发生次数也为0,游戏才能正常运营下去,不被玩家的口水、投诉和欺诈指控淹没。

    当然,只要不涉及钱的问题,那么游戏开发者确实想用什么随机分布都行。比如那些打怪爆出的稀有物品,搞个正态分布完全没问题,别人一次就出你一万次也不出,你也没办法找游戏公司麻烦,因为如果你真的计算一下的话就会发现,全服玩家的综合掉率确实就精确的位于正态分布的中间,而你只是运气不好位于曲线末尾罢了。

    但如果涉及钱的问题,以及“公平竞技”的问题,那就:绝对不能有人位于曲线末尾,一个也不能有,一次也不能有。所以曲线末尾被以编程的形式硬性裁剪,事件的发生频率就不再符合自然分布概率,也不再符合伪随机数的分布概率。

添加新回复
回复需要登录