炉石传说吧 关注:5,312,179贴子:108,262,834

下午到现在编了个程,实现了奥弹概率问题的计算

只看楼主收藏回复

“奥弹概率问题”指的就是类似“一发奥弹打死精灵龙的概率是多少”这样的问题,不过也有多个随从在场的复杂得多的情况,枚举过程及其繁琐不适合人类进行,故写了个程序,用于计算所有情况的奥弹概率问题。
本人比较古董不会写界面,只会算数,所以也没做出个软件,只有代码直接编译运行,当然也可以做成命令行程序,可加参数运行。程序可计算每个随从各自死亡率,及清场概率(全死),其他概率比如三个死两个这种就没做了。同时假设对方英雄无限血,毕竟奥弹概率问题主要计算打随从,这里就不考虑斩杀问题。
如图,用到的函数就一个process,参数就一串数字,第一个是奥弹威力,后面的是随从血量,有多少个随从就写多少个对应血量,数字之间隔开就好。

第一个例子,奥弹打精灵龙,50%几率。

第二个例子,复杂一点,两个随从,一个精灵龙,一个哈哈,这种情况不能再直接口算,因为随从死亡后不再能承受伤害,情况改变,需要枚举各情况计算。第一个随从,也就是2血精灵龙,死亡率32%,哈哈72%,全死19%。

再拿个复杂情况举例,克苏恩(六攻奥弹)打精灵龙+哈哈+淡水鳄。
过一会儿再想办法做个表,列一下各种情况的奥弹概率,有的对于决策来说是有帮助的,比如对面火羽精灵+银色侍从+军旗,本方一个淡水鳄,该先撞再奥弹还是奥弹完再撞?该撞哪个?如果已知各种情况的概率的话,对决策无疑是有利的


IP属地:广东1楼2018-11-18 21:31回复
    然而这些对于非酋概率都是零


    IP属地:湖北来自Android客户端2楼2018-11-18 21:32
    回复
      2025-08-08 09:30:52
      广告
      不感兴趣
      开通SVIP免广告
      c...


      IP属地:北京来自Android客户端3楼2018-11-18 21:34
      回复
        楼主是之前看到了那个问奥弹解软的概率问题的帖子特意编了一下程吗,可以的很强👍


        IP属地:北京来自Android客户端4楼2018-11-18 21:35
        收起回复
          对于我来说大部分时候都是奥数影袭


          IP属地:浙江来自Android客户端5楼2018-11-18 21:35
          回复
            我都是用奥蛋过墙斩杀的。


            6楼2018-11-18 21:54
            回复
              楼主高中生还是?


              IP属地:浙江来自手机贴吧7楼2018-11-18 21:57
              收起回复
                发一下代码让大家检查一下算法
                用递归写的吗


                IP属地:吉林来自iPhone客户端8楼2018-11-18 21:58
                回复
                  2025-08-08 09:24:52
                  广告
                  不感兴趣
                  开通SVIP免广告
                  这概率还用算?算就50%,打死和打不死


                  IP属地:广东9楼2018-11-18 22:00
                  回复
                    show me the code


                    IP属地:美国来自Android客户端10楼2018-11-18 22:01
                    回复
                      袁隆平:我就是让你们吃得太饱了


                      IP属地:重庆来自Android客户端11楼2018-11-18 22:01
                      回复
                        代码并不能证明什么,你编完还要证明你程序是对的


                        青铜星玩家
                        百度移动游戏玩家均可认证(限百度账号),去领取
                        活动截止:2100-01-01
                        去徽章馆》
                        IP属地:江西来自Android客户端12楼2018-11-18 22:02
                        回复
                          c++ codeblock


                          IP属地:广东13楼2018-11-18 22:03
                          回复
                            #ifndef_MAK_PROBABILITY
                            #define_MAK_PROBABILITY
                            intread_int(char** ppch);
                            typedefstruct_int_list
                            {
                            intamount;
                            intdata[0];
                            }int_list, *p_int_list;
                            p_int_listread_all_int(char* input);
                            //minion
                            typedefstruct_mini_t
                            {
                            inthp;
                            }mini_t, *p_mini;
                            //battleground
                            typedefstruct_bg_t
                            {
                            floatprobability;
                            intbullet;
                            intamount;
                            intalive;
                            mini_tmini[0];
                            }bg_t, *p_bg;
                            p_bgbg_create(char* input);
                            voidbg_print(p_bg pbg);
                            p_bgbg_shoot_mini(p_bg pbg, int shoot);
                            p_bgbg_shoot_face(p_bg pbg);
                            voidrecur(p_bg pbg);
                            voidprocess(char* input);
                            #endif


                            IP属地:广东15楼2018-11-18 22:07
                            收起回复
                              2025-08-08 09:18:52
                              广告
                              不感兴趣
                              开通SVIP免广告
                              .c文件无限被吞,200多行有点多,截图也懒得,我传个网盘看看吧


                              IP属地:广东17楼2018-11-18 22:13
                              回复