炉石传说中的概率问题:奥术飞弹打死精灵龙的概率是多少?

作者: 果壳

来源: 果壳网

发布日期: 2016-02-13

讨论了在炉石传说游戏中,使用奥术飞弹打死2血精灵龙的概率问题,通过理论计算和编程实验,得出接近50%的概率。

一个概率问题,在炉石传说中,对方英雄满血且对面场上有一个2血精灵龙,我用出一发奥术飞弹,打死精灵龙的概率是多少?听说答案是50%。我觉得这题不简单,编程得到的结果匪夷所思,接近49.93%但是不到50%。奥蛋每次攻击都是独立判定的,但是对于这个特定模型来说,只有一种情况下,概率会有不同。那就是当前两次伤害已经打死精灵龙,最后一次就只能打脸了。用文字表示的话,打脸是0,精灵龙是1。

前面6种都是12.5%的概率出现,最后一种则是25%,那么统计一下出现两次1的情况,就是D、F和G,其中D和F都是12.5%的概率,G是25%,加起来一共50%。如果你采用多次迭代的方法进行统计,那么实际得到的结果跟理论计算确实会有一定的差距。不妨试试把实验次数提高一些。

用Excel算了一下概率:2血,1血,0血,第1发,50.0%,50.0%,0.0%;第2发,25.0%,50.0%,25.0%;第3发,12.5%,37.5%,50.0%。这东西好像叫马尔科夫链。每行规则是:2血概率=上回合2血概率*50%;1血概率=上回合2血概率*50%+上回合1血概率*50%;0血概率=上回合1血概率*50%+上回合0血概率。

就这样迭代下去,所以N发打死精灵龙的概率也可以算。楼主是试过很多次都是这样吗?只学过VBS,代码如下:k=0,minion=2,hero=30,for i=0 to 99999,fire(),fire(),fire(),if minion=0 then k=k+1,minion=2,hero=30,next,msgbox "在100000次试验中,精灵龙死了"&k&"次"。

function fire(),if minion>0 then,Randomize,if rnd>0.5 then,minion=minion-1,else,hero=hero-1,end if,else,hero=hero-1,end if,end function。试验了100000次,看上去差不多50%。

UUID: 18180cf4-1dc5-4622-885a-0c77a515f322

原始文件名: /home/andie/dev/tudou/annot/AI语料库-20240917-V2/AI语料库/果壳公众号-pdf2txt/2016/2016-02-13_天了噜,这样打炉石还能不能好了?.txt

是否为广告: 否

处理费用: 0.0027 元