dota2吧 关注:6,421,171贴子:177,255,350
  • 25回复贴,共1

dota里的伪随机

只看楼主收藏回复

众所周知伪随机的机制是选取一个程序员无法预料的值,通常是时间,作为种子,然后产生一串确定的随机数。
所以剑圣一局能爆多少刀什么时候爆,都是开局就确定的事情
不知道如果有源码的话,能不能做出暴击预告这种辅助啊


IP属地:北京来自iPhone客户端1楼2019-03-01 01:11回复
    然而dota的伪随机机制是概率事件不触发时提高下次触发的几率


    IP属地:美国来自iPhone客户端2楼2019-03-01 01:43
    收起回复
      2025-12-11 15:15:32
      广告
      不感兴趣
      开通SVIP免广告
      作为一个程序员来告诉你,虽然计算机里的随机是这样的,但一般情况下整局游戏随机种子是共用的,一般不会给每个需要随机的数值单独设置一个种子,这样太多了。
      举个例子,你剑圣没爆,下一随机数刚好要你爆了,结果那边pa把数字用掉了。
      而伪随机算法是在你没爆的时候提高概率,但不会改变随机数值。


      IP属地:浙江3楼2019-03-01 01:47
      收起回复
        众所周知你个头啊...


        IP属地:浙江来自Android客户端4楼2019-03-01 02:06
        收起回复
          但我玩剑圣基本知道下一刀爆不爆啊 尤其打野的时候三四刀不爆 小怪红血 就转a大怪 妥妥暴击 准确率最少六七成还有无敌斩结束 对方红血 这时候砍一刀 妥妥暴击


          IP属地:广东来自Android客户端5楼2019-03-01 02:13
          收起回复
            首先 do2伪随机不是你这个意思 计算机的伪随机的效果=真随机 只是生成方式是伪随机 dota2的伪随机是效果也是伪随机
            其次 就算是你说的 这刀爆不爆也只和你发出攻击指令的时机有关因为你说的那种伪随机基本都是靠系统时钟实现的
            第三 暴击有前置动画 尤其是某些动能宝石和特效饰品的动画非常明显 所以如果反应非常快就可以在伤害发生前判断自己这刀是否暴击并且s掉


            IP属地:上海6楼2019-03-01 13:22
            收起回复
              补充点查到的定义
              伪随机性 Pseudorandomness: 通常指伪随机序列,满足统计随机性,即看起来无法预测,但其实前后完全因果,第一个的值可以推出第二个
              伪随机数生成器 Pseudorandom number generator:计算机使用的随机数生成算法,通常需要一些随机种子,比如linux会使用敲击键盘的时间作为种子。
              随机分布 Random Distribution:剑圣平A就应该是一个概率20%的两点分布。伪随机数生成器一般生成0-1均匀分布,也有高斯分布,没听过直接生成两点分布的。剑圣暴击的朴素算法应该是:if x < 0.2 暴击。实际上从0-1的均匀分布到20%的两点分布做了一个变换。
              伪随机分布 Pseudo Random Distribution:一般指游戏中的概率叠加算法,避免连续暴击和整场不暴击。注意这种极端情况,即使是上述朴素算法,也是非常有可能的。即由伪随机序列逼近的0-1均匀分布,直接转化为20%两点分布,极端情况也很常见。因此第一刀,实际上是从5%两点分布中采样,第6刀是从100%两点分布中采样,同时保证1万刀爆2千刀,即平均来看像是从20%两点分布中采样。
              总结:建议使用全名“伪随机分布”来描述概率叠加算法,因为它伪的是随机分布。概率叠加算法由“真”随机序列也可以实现,但是在计算机中,它同时也是伪随机序列。


              IP属地:北京来自iPhone客户端8楼2019-03-01 16:41
              回复
                要是有那么好我火猫百分百捆人


                IP属地:广东来自Android客户端9楼2019-03-01 16:45
                收起回复