美文网首页今日看点电竞·游戏
关于Dota2以及魔兽的伪随机机制的一些简单研究

关于Dota2以及魔兽的伪随机机制的一些简单研究

作者: pandaczm | 来源:发表于2016-09-30 00:53 被阅读0次

回顾

伪随机分布 是指魔兽争霸III引擎中为某些百分率攻击修正的动力可能性计算。这个概率不是取一个静态百分数,而是开始 设为一个很小的初始值,然后如果连续的攻击修正没有发生,他会渐渐地变大。但攻击修正起作用时,概率会降回 为初始值。这样系统不可能实现一连串的成功修正,也会让整个游戏至少有一个攻击修正,最终概率会超过100 %并“强制”在下一个攻击中实现修正。所以攻击修正的分布不是真正的随即,也即称之为 伪随机分布。 一般来讲,魔兽争霸III中依循这个概率分布的技能概率在最接近的5%的边界之内

python如何通过已知概率计算出初始概率:

from numpy.linalg import eig
import numpy as np


def get_c(target_pro):
    assert target_pro >0 and target_pro < 1
    C = 0.30210 # initial value of C
    pro = 0.5
    while (abs(target_pro - pro) > 10**-5):
        C = C + (target_pro - pro) / 16
        
        
        MaxAttack = int(np.ceil(1/C))
        ##print C, MaxAttack
        P = np.mat(np.zeros((MaxAttack, MaxAttack)))
        for n in range(int(MaxAttack)):
            if (n + 1) * C <1:
                P[n,0] = (n + 1) * C
            else:
                P[n,0] = 1

        for n in range(int(MaxAttack - 1)):
            P[n,n + 1] = 1 - P[n,0]

##        print P
        EigenValue, EigenVectors = eig(P.T)
        StableState = EigenVectors[:,0].real
        
        StableState = StableState / np.sum(StableState)
##        print StableState
        pro = StableState[0,0]
        
        print target_pro - pro
##        return StableState

    return C

if __name__ == '__main__':
    c = get_c(0.05)
    

具体过程是通过马尔科夫链进行计算的。

相关文章

  • 关于Dota2以及魔兽的伪随机机制的一些简单研究

    回顾 伪随机分布 是指魔兽争霸III引擎中为某些百分率攻击修正的动力可能性计算。这个概率不是取一个静态百分数,而是...

  • DOTA2中的伪随机及其lua实现

    因为单纯的随机确实会影响到竞技性,所以dota2引入的是伪随机机制,在大量的技能中,比如说混沌的混乱之箭、剑圣的剑...

  • 从Dota2的伪随机谈开

    起因是在知乎上看到木七七工作室转发的谈随机处理的一个内部视频,视频里面聊到Dota2的技能概率处理方式,比如大鱼人...

  • 真/伪随机、以及随机算法

    伪随机性(英语:Pseudorandomness)是一个过程似乎是随机的,但实际上并不是。伪随机数是看似随机实质是...

  • Monkey的日志分析

    在monkey对我们指定测试app进行大量的随机测试,并生成伪随机的用户事件流,如点击,触摸或手势,以及一些系统级...

  • 2019-07-09

    伪随机数,是通过一些数学算法生成的随机数,并非真正的随机数。密码学上的安全伪随机数应该是不可压缩的。对应的“真随机...

  • 『伪随机』伪随机的概念

    之前一直听说过“计算机里没有真正的随机”这句话。,最近玩游戏时,突然很好奇游戏中的“抽卡”“暴击率”等随机事件,是...

  • 多线程环境下生成随机数

    生成伪随机数据 Java里有伪随机型和安全型两种随机数生成器。伪随机生成器根据特定公式将seed转换成新的伪随机数...

  • 密码学基础之伪随机数

    随机数分类 真随机数 伪随机数2.1 强伪随机数2.2 弱伪随机数 真随机数:其定义为随机样本不可重现。实际上只要...

  • bitcoin源码-1-获取密钥对

    关键概念 随机数我们在软件中一般使用的随机数实际上是伪随机数,具有统计学伪随机性。统计学伪随机性指的是在给定的随机...

网友评论

    本文标题:关于Dota2以及魔兽的伪随机机制的一些简单研究

    本文链接:https://www.haomeiwen.com/subject/vocsettx.html