17173有料社区

标题: 折磨人的概率,听说玩POE的人智商高,有大佬来解答下吗? [打印本页]

作者: 玩家U_9948190    时间: 2019-1-4 09:49
标题: 折磨人的概率,听说玩POE的人智商高,有大佬来解答下吗?
暗黑也好,POE也好,每次打完怪,掉什么装备,洗装备属性高低roll点,6L能不能点成功等等,本质上玩的都是概率。

手残党,硬生生把动作游戏还原成回合游戏。

问题:A的HP100,B的HP80,两人伤害都是10点,命中率都是80%。A、B轮流出手,每次都是A先出手。每人最多出手15次。(两人打平,也算A负)
1问:A的胜率是多少?
2问:A的胜率要想达到90%,则A的HP应该是多少?


听说玩POE的人智商高,有大佬来解答下吗?



作者: 吸血才是王道    时间: 2019-1-4 09:59
你到底脑子里想的是什么?这个游戏不需要你考虑这么清楚啊,直接抄BD,先把装备技能天赋的知识吸收了,再把173上的百科知识吸收了,最后再去用pob模拟计算,你就是大佬了。PS:你这个编辑到底是什么作用,作为编辑还不会玩游戏?

作者: 玩家U_9948190    时间: 2019-1-4 10:04
发表于 2019-1-4 09:59
你到底脑子里想的是什么?这个游戏不需要你考虑这么清楚啊,直接抄BD,先把装备技能天赋的知识吸收了,再把 ...

大佬 不要急,我们回归游戏本质,这贴先讨论抽象的数学概率先
作者: 神威如海o    时间: 2019-1-4 10:04
你这设定不够严谨啊,装备特效呢?暴击呢?吸血呢?格挡闪避护甲呢?万一武器有几率双倍呢?   (`皿´#)你是魔鬼吗
作者: 吸血才是王道    时间: 2019-1-4 10:11
发表于 2019-1-4 10:04
大佬 不要急,我们回归游戏本质,这贴先讨论抽象的数学概率先

你的题设就有问题,不想回答你。你可以召唤毛裤。
作者: Mubiii    时间: 2019-1-4 10:19
当成一道概率论的题~解了就好
作者: 玩家U_9948190    时间: 2019-1-4 10:28
发表于 2019-1-4 10:20
感觉胜率应该挺高,但我算出来只有56.52%。我应该是算错了

求计算思路
作者: 碧海歌龙    时间: 2019-1-4 10:30
命中闪避都是伪概率。。。不是这么算的。
躲避才是真概率。
作者: 玩家U_9948190    时间: 2019-1-4 10:30
发表于 2019-1-4 10:19
当成一道概率论的题~解了就好

是的,数学就是抽象出来,不去操心无关的其他干扰因素先,为了将问题简化而已。如果再考虑到暴击、暴伤加成、格档、回血等。就太难了
作者: 玩家U_9948190    时间: 2019-1-4 10:32
发表于 2019-1-4 10:30
命中闪避都是伪概率。。。不是这么算的。
躲避才是真概率。

为了简化,这里的命中率,就是参考双方闪避、命中加成等数值,是最终计算后结果。不是属性上的初始值。
作者: 玩家U_138217691    时间: 2019-1-4 10:37
发表于 2019-1-4 10:04
你这设定不够严谨啊,装备特效呢?暴击呢?吸血呢?格挡闪避护甲呢?万一武器有几率双倍呢?   (`皿´#) ...

看血量。A走的超载。B走的暴击
作者: 神威如海o    时间: 2019-1-4 10:41
发表于 2019-1-4 10:37
看血量。A走的超载。B走的暴击

你这样更加大难度,你怎么不说技能也不一样呢!(〃・̆ ・̆〃) ​​​​通报批评
作者: 老米迷    时间: 2019-1-4 11:09
闲着无聊 花两分钟写了点东西
下面代码 复制 新建一个文本文件,粘贴进去 保存 改文件名 xxx.html 后缀改成网页 然后执行就好

<html>
<body>
<script type="text/javascript">
var loopTimes = 10000;//采样基数
var firstWinTimes = 0;//A胜利场次
var secondWinTimes = 0;//B胜利场次(包括平局)
for(i = 0;i<loopTimes;i++){
        var firstHp = 100;//第一个人的初始血量
        var secondHp = 80;//第二个人的初始血量
        var firstDamage = 10;//第一个人单次伤害
        var secondDamage = 10;//第二个人单次伤害
        var hitRate = 80;//命中率
        var maxTimes = 15;//每场战斗最大回合
        for(;maxTimes > 0;maxTimes--){
                var firstHit = parseInt(Math.random()*100)+1;
                if((firstHit <= hitRate) && (secondHp -= firstDamage) <=0){
                        firstWinTimes++;
                        break;
                }
                var secondHit = parseInt(Math.random()*100)+1;
                if((secondHit <= hitRate) && (firstHp -= secondDamage) <=0){
                        secondWinTimes++;
                        break;
                }
        }
        if(maxTimes <= 0){
                secondWinTimes++;
        }
}
alert("A胜利场次:"+firstWinTimes+".B胜利场次(包括平局):"+secondWinTimes);
</script>
</body>
</html>
作者: TiFaMyWife    时间: 2019-1-4 11:14
POB的Calcs面板就是你要的计算过程,感兴趣自己去琢磨
作者: 玩家U_9948190    时间: 2019-1-4 11:22
发表于 2019-1-4 11:09
闲着无聊 花两分钟写了点东西
下面代码 复制 新建一个文本文件,粘贴进去 保存 改文件名 xxx.html 后缀改成 ...

大佬 ,牛了。可是我想要的是数值的概率,并不是每个频率。
作者: 1321assg    时间: 2019-1-4 11:28
发表于 2019-1-4 11:22
大佬 ,牛了。可是我想要的是数值的概率,并不是每个频率。


借花献佛,按照他这样算,已经大于90%胜率了

作者: 老米迷    时间: 2019-1-4 11:28
发表于 2019-1-4 11:22
大佬 ,牛了。可是我想要的是数值的概率,并不是每个频率。

f5刷新两下,大概几率91%吧,虽然是伪随机
作者: 玩家U_138940776    时间: 2019-1-4 12:19
龙族幻想群的?
作者: 糖醋小泥鳅    时间: 2019-1-4 12:28
发表于 2019-1-4 11:09
闲着无聊 花两分钟写了点东西
下面代码 复制 新建一个文本文件,粘贴进去 保存 改文件名 xxx.html 后缀改成 ...

你们都是魔鬼吗,以后的数学教学就应该用这样的实际案例。
作者: 玩家U_9948190    时间: 2019-1-4 15:22
发表于 2019-1-4 11:28
f5刷新两下,大概几率91%吧,虽然是伪随机

嗯,我用你的代码,改成100万次。数值在90%~~91%左右浮动。

事实上,早上问了留美的一个统计学博士(学霸小学同学) ,半夜回我答案了。就是90.5%左右。

如果要推导数学公式,也可以,就是算起来比较麻烦。要算各种conditional probability的概率加起来。

用你这种模拟的方法是最快的。不同的是他不用javascript,是用R做的simulation。更方便。
作者: llu2017    时间: 2019-1-4 15:35
A100血 先攻击 命中都是80%
B怎么赢
作者: 老米迷    时间: 2019-1-4 15:43
发表于 2019-1-4 15:22
嗯,我用你的代码,改成100万次。数值在90%~~91%左右浮动。

事实上,早上问了留美的一个统计学博士(学 ...

哈,你给我要conditional probability这些算法的结果,我可能还得翻书去
不如你同学给你讲的透彻
用js主要是浏览器大家都有,不用额外的搭建开发环境了

代码里面有个潜在的碧油鸡 就是如果第15回合 刚好B打死A了 因为剩余回合也是0了 那么B的胜利次数会额外加1

不过好像这个问题没出现 我测试了几次 A胜利和B胜利总数是给定的循环次数 可能概率深度还不够 模型太简单了




欢迎光临 17173有料社区 (//bbs.17173.com/) Powered by Discuz! X3.2