新闻资讯
网站导航
×

奥术飞弹打死精灵龙概率为何是50%

16-06-06 18183 小k

会长直播炉石传说的时候,大家又对奥术飞弹打死精灵龙的概率争辩起来,其中大部分还是坚持1/2的概率,少部分坚持3/7或者3/8的概率。几派间互相都不能说服。于是为了证明1/2派的胜利,利用工作午休时间,写了个PHP小脚本,跑了一百万次,统计了结果。

奥术飞弹打死精灵龙概率为何是50%

代码如下:

$result = array(0=>0,1=>0);//储存结果的数组

for($i=0;$i<1000000;$i++){

//初始化变量

$is_killed = 0; //0: PUCK还活着; 1: PUCK被干死了

$hit_num = 0; //打中PUCK多少下

for($j = 0; $j < 3; $j ++){ //一共有三发奥弹

srand((double)microtime()*1000000);//重新定义随机数种子,为了让随机数更接近真实

$rand_num = rand(0,1);//随机取0和1中的一个整数 0: 打脸, 1: 打PUCK

if( 1 === $rand_num ){

$hit_num += 1;//每次打中PUCK,则+1

//每次打中之后判断PUCK是否死了

if( 2 === $hit_num ){

$is_killed = 1;

break;

}

}

}

$result[$is_killed]++;//结果对应的元素个数+1

}

print_r($result);

?>

----------------------------不想看代码的直接看下面--------------------------

说明:

上面并不牵扯什么复杂算法,就是完全模拟真实,每次结果都是丢一发奥弹,当打中PUCK的次数到达两次了该发攻击就结束(前两次直接打死PUCK了谁管你第三发是不是打脸=。=!),并且结果中杀死的次数+1,否则没杀死的次数+1。如此循环一百万次,记录一百万个结果。

结论:

运行三次,结果分别如下(其中1代表的是杀死的次数,0代表没杀死):

结果一: [0] => 499704 [1] => 500296 击杀概率:50.03%

结果二: [0] => 500398 [1] => 499602 击杀概率:49.96%

结果三:[0] => 500229 [1] => 499771 击杀概率:49.98%

可以看到,杀死的概率都明显接近于50% ,也就是1/2!

附:当然我也就 两次杀死PUCK到底是按照1/4 还是 按照 其它派中,这只是等概率的1/7或者1/8,我修改了下小程序(代码略)

得到的三次结果如下:

结果一:24.94%, 结果二: 24.95%,结果三:24.91%

也就是说,两发奥弹打死PUCK的概率是1/4,并不能单纯用枚举法只作为等概率的一种情况看待。

奥术飞弹打死精灵龙概率为何是50%

枚举法:如图所示

朝神也在论文第一篇里面解答了>>> 点击查看

阅读全文

免责声明:文中图片应用自网络,如有侵权请联系删除

良心手游推荐

wu