1、问题:
炉石传说是暴雪出的一款卡牌对战类游戏,策略和博弈,卡组的组合,费用曲线等诸多要素会影响胜局,今天聊聊这两张卡:
玩过的同学都知道,法力龙虽然不会被寒冰箭,英雄的小火球点掉,但是可以被奥弹biu死,那么问题来了:
** 假如对面场上只有法力龙(满血),法师一个奥弹清掉法力龙的概率是多少呢?**
2、上代码
var combat = {
hero : 0,
dragon : 0,
hit : function(){
if(this.dragon===2){
this.hero++;//精灵龙只有两血,如果前两发奥弹打死了精灵龙,那么剩下一发必然打脸
}else{
var randomHit = Math.random();
//The Math.random() function returns a floating-point, pseudo-random number in the range [0, 1)
if(randomHit<0.5){
this.dragon++;
}
else{
this.hero++;
}
}
},
getDragon:function(){
return this.dragon;
},
init:function(){
this.dragon = 0;
this.hero = 0;
}
}
var count = 0;
for(var i=0;i<100000000;i++){
combat.init(); //初始化战斗
var x = 3; //一共三发
while(x>0){
combat.hit();
x--;
}
if(combat.getDragon()===2){
count++;
}
if(combat.getDragon()===3){
console.log("error");//检查是否有错误
}
}
console.log("dragon die "+count+" times");
dragon die 49998591 times dragon die 50011641 times dragon die 50001475 times dragon die 50006546 times dragon die 49991350 times
结果是50%应该没错了,但是宝宝有个问题,这个过程对吗?
先向我的数学老师说声抱歉,简单的问题让我复杂化了。 按照楼主的思路我在纸上画了画,可以杀死精灵龙奥蛋分两种情况: 1.第一发未击中精灵龙 2.第一发击中精灵龙
先说第一种情况: 如果第一发未击中精灵龙,那么杀死精灵龙的概率是: 1/2 * 1/2 * 1/2 (未击中*击中*击中) 第二种情况: 第一发击中精灵龙,那么杀死精灵龙的概率: 1/2 * 1/2 + 1/2 * 1/2 * 1/2 (击中*击中 + 击中*未击中*击中) 那么杀死精灵龙的概率: 1/8 + 1/4 + 1/8 = 50%
本着严谨的原则,上述结果成立的先决条件是法师的hp要大于1。如果法师的hp=1,一旦被奥蛋击中,游戏会提前结束,至于法师hp = 1时的概率如何计算是非常复杂了。 先假设hp = 1 时的概率 为1/30 那么当 hp = 1时,如果要杀死精灵龙,则前两发必须命中精灵龙: 1/2 * 1/2 假设后的结果: 29/30 * 1/2 + 1/30 * 1/4 = 59 / 120 所以实际结果会比这个小一些。
人 1/2 - 人 1/2 - 人 1/2 === 1/8
人 1/2 - 人 1/2 - 龙 1/2 === 1/8
人 1/2 - 龙 1/2 - 人 1/2 === 1/8
人 1/2 - 龙 1/2 - 龙 1/2 === 1/8 √
龙 1/2 - 人 1/2 - 人 1/2 === 1/8
龙 1/2 - 人 1/2 - 龙 1/2 === 1/8 √
龙 1/2 - 龙 1/2 === 1/4 √
其实就是前两发打到龙的话,第三发奥弹就是必然事件了,概率变了
主要想跟大家讨论的是random的取值范围是[0,1) 也就是说对0.5这个分界判断
应该是<0.5
还是<=0.5
因为样本取很大的话,这点区别是看不出来的
@CarlosRen 既然知道前2发都打中龙这是一个特殊情况, 那为什么不知道前2发都没打中龙,这也是个特殊情况。 为什么? 因为前2发都没打中,那就不用再考虑,因为龙一定不会死,只是剩1血还是2血的问题了,但我们求的概率是龙会不会死,所以与这个无关。 两种特殊情况的概率都是1/4,还有其他4种情况概率都是1/8 即如下: 一共6种情况:(中指的是命中龙,不则对立) 中中*(第3次中没中已经没必要知道了,因为龙已经死了) 1/4 中不中 1/8 中不不 1/8 不中不 1/8 不中中 1/8 不不*(第3次中没中也已经没必要知道了,因为龙一定不会死)1/4