三国志14吧 关注:122,784贴子:2,020,188

三国志14出阵兵粮消耗定性计算

只看楼主收藏回复

如题,对游戏内的兵粮消耗做了一些计算和推测,自认为发现了几个很神奇的机制,分享一下~


IP属地:北京1楼2023-05-18 08:52回复
    首先是一些基础的,没有争议的结论:
    1.兵粮每旬支出一次,每月三次;收入只在月底一次(所以城市情报中的兵粮收入要达到兵粮支出的3倍才能维持下去)。
    2. 城内士兵兵粮消耗量为兵力*0.1每月
    3.出阵士兵兵粮基础消耗量翻3倍,也就是兵力*0.1每旬(兵力*0.3每月),不过这只是出阵消耗的一部分,剩下的部分就是本帖讨论的重点。


    IP属地:北京2楼2023-05-18 09:01
    回复
      关于出阵兵粮消耗,我之前在网上看到有一些解释涉及到地形、距离等因素,但大多不够具体,而且众说纷纭。所以我自己花了点时间测试,总算是找到了一套比较合理、能够解释我得到数据的机制和算法,目前看来比较合理,希望能帮到你。
      下面正式开始:


      IP属地:北京3楼2023-05-18 09:26
      收起回复
        一、首先要引入一个概念——“粮道”,这是计算兵粮消耗的基础。
        这里的“粮道”其实和断粮断的那个粮道是一回事,但这里要更明晰一些,也就是要知道粮食从供粮城市(即出阵城市)到部队之间的完整路径,这个路径地图上是没有明确显示的,但经我测试确确实实存在,而且能用简单的方法找到,而在找粮道之前还要明确粮道的一个基本特点:
        ·粮道只能经过己方(友方)已涂色的格子,其余无论是未占领的格子还是敌对势力的格子都不会划到粮道里
        先记住这一点,然后开始找粮道,其实很简单,就是移动部队的方法:选中部队,然后把鼠标移动到出征城市周围那一圈里与部队最接近的格子,如果靠近部队的方向上刚好有和街道连接的点,优先移动到那个点,然后就能看到游戏自动生成的最短路径,这个路径基本上就是粮道的路径(开始位置差个一两格也无伤大雅)。

        关于这个最短路径,需要说明一下:这原本是游戏根据每个格子消耗的行动力判断得到的最快到达路径,而不同地形消耗行动力不同,大概是高山>中山>森林~矮山>沙地>平原>街道,因为街道消耗的行动力(1.25每格)明显小于其他地形(涉及到兵粮消耗的时候更是有碾压性优势),所以最短路径会优先往街道上靠,就像图中这样。而粮道经过不同地形增加的兵粮消耗是不同的(后面会具体分析),而且其消耗量大小排序也基本和上述的行动力消耗排序相吻合,所以这条路径作为粮道一般也是消耗较少的,游戏里也理所当然地直接把它当做粮道(但其实这样生成的粮道有时并不是消耗最少的)
        总之,通过这个游戏内自带的最短路径系统,我们可以很容易找到部队的粮道,但有时候这条路径会经过未被己方涂色的格子,而根据之前提到的特点,这时候的粮道显然无法与这条路径重合,就像下图这种情况:

        虽然路径指示器给出了右侧沿着道路的最短路径,但很遗憾那边还没有涂色,所以现在的粮道只能是左边这条跨越了诸多复杂地形的路径,不难想象,此时的兵粮消耗绝不是一笔小数目,除去城里那9000部队300每旬的支出,这支10000人部队的兵粮消耗已经达到了2137每旬...不过这种情况是可以轻易避免的,且往下看。

        另外,如果遇到更复杂的情况需要自行判断粮道时,只要记住两点:1.最短路径(消耗行动力最少)2.尽量往道路上靠(还是消耗行动力最少!)


        IP属地:北京4楼2023-05-18 10:36
        回复
          大佬,细🔒


          IP属地:广东来自iPhone客户端5楼2023-05-18 10:48
          回复
            能讲解一下建筑吗


            IP属地:福建来自Android客户端6楼2023-05-18 11:18
            收起回复
              找到了粮道,就可以正式做计算了,不过在此之前容我先卖个关子。
              根据常识,兵粮的消耗量应该是和粮道的长度、经过的地形有关,我开始也是基于这个假设尝试推导计算公式;最直觉的想法就是不同的地形有不同的耗粮倍率,然后就沿着粮道把这些倍率一路加起来,最后乘以部队人数就行了,然而测试得到的数据不说是完全吻合吧,也可以说是毫不相干了,其中有几个尤其出乎我的意料,也引发了我对算法的重新思考,便在这里分享一下:
              1. 兵粮消耗何故激增?粮道长度如何影响消耗?

              在上图中,这支部队在当前位置(街道)的兵粮消耗为1005每旬,而当它仅仅移动一格到了“1”位置(平地,距城市1街道+1平地),消耗突然增长了115,达到了1120每旬,继续在平地上远离城市,消耗不断增加,但增速迅速放缓,这显然不是简单的线性叠加;更令人意外的是,当部队移动到远处的“2”位置(平地,距城市8街道+1平地)时,同样的地形消耗反而比“1”位置更低,变成了1064每旬。
              2. 穿过崎岖地形就能轻松一些?

              在上图中,部队在当前位置(森林)的消耗为1564每旬,当移动到红色箭头位置(平地)时,粮道增长了一格,消耗反而降低到了1553每旬,这与流传的“所在地形会影响消耗,平原上消耗比森林山上低”相符,但还没这么简单,当部队继续沿着蓝色箭头方向在平地上移动时,粮道继续变长,然而消耗进一步降低到了1537,这又如何解释呢?
              种种迹象表明,兵粮的消耗并没有直观上想的那么简单,而上面这些问题的成因机制,且听我娓娓道来~


              IP属地:北京7楼2023-05-18 11:37
              收起回复
                在开始计算前有几点需要先说明:
                1. 为方便起见,我测试都是用的10000人部队,后续数据都以此为基准,有些倍率比较小会直接乘以10000后以数值形式给出,意会即可。
                2. 测试中没有带影响粮食消耗的个性或政策
                3. 得出的结论是通过假设验证得到的,所以具有实用性,但未必是最底层的游戏逻辑,公式方面目前还是定性分析为主,辅以一些必要的数据,因为拟合比较困难,数据具有参考意义,但不会很精确。
                4. 如果发现漏洞或者不合理的地方,欢迎质疑讨论~


                IP属地:北京8楼2023-05-18 11:52
                回复
                  吃个饭,回来再写


                  IP属地:北京9楼2023-05-18 11:54
                  回复
                    厉害厉害


                    IP属地:上海10楼2023-05-18 11:56
                    回复
                      好帖顶顶


                      IP属地:广东来自Android客户端11楼2023-05-18 12:31
                      回复
                        好帖,坐等更新


                        IP属地:河北来自Android客户端12楼2023-05-18 13:25
                        回复
                          OK,正式开始,以下内容均为私货:
                          开头提过一嘴,出阵部队兵粮消耗翻3倍,也就是(人数*0.1),这部分我称之为出阵基础消耗,只与人数有关,另外一部分与人数、粮道长度和粮道路径上所有格子的地形有关,可以理解为在通过粮道给部队送粮时损耗的部分,我称之为“粮道损耗”,故:
                          ·出阵兵粮消耗=出阵基础消耗+粮道损耗
                          ·基础出阵消耗=人数*0.1/旬
                          下面重点说明粮道损耗:
                          影响粮道损耗的首要因素就是地形,不同地形的损耗率是固定的,且有明显差别,由低到高大致可以排为(粗算数据,可能存在些误差):街道(3,即10000*0.0003,为了方便计算,直接给出了对应10000人部队每旬具体的兵粮损耗数值,下文出现同理)<平地(230)<沙地(400)<湿地、浅滩、大河(800)<山道(1000)<森林、矮山(1200)<中山(1600)<高山(2000),这个排序与机动力消耗量的排序基本吻合,但不难发现【街道】地形比其他地形的损耗足足少了两个数量级!所以【街道】地形自然成为了影响损耗的关键,而且也是导致游戏自动形成的粮道有时候并不是最少损耗路线的原因(粮道是按照机动力消耗生成的最短路径,但【街道】地形与其他地形的机动力差距并没有那么大,所以最短路径生成时并不会刻意在【街道】上绕远路,而实际上这种做法往往可以极大降低兵粮消耗,后面会举例说明)
                          因此,“部队靠近街道兵粮消耗少的说法是有据可循的”,而【街道】的便利还不止如此,在计算具体消耗时我最先得到的就是【街道】地形的数据,因为它最为稳定,而且简明:
                          ·当粮道全部在街道上时,粮道损耗=粮道总长度(格数)*街道损耗率*部队人数
                          以下图为例:

                          显然,1、2、3、4这四个格子构成了部队的粮道 ,粮道损耗=4*3=12,出阵基础消耗=10000*0.1=1000,城内部队本旬消耗=(9000*0.1)/3=300,故本月兵粮支出为12+1000+300=1312

                          可以看到城市情报里显示的支出为1314,多出的2点也是出征基础消耗的一部分,只与出征部队人数有关,因为倍率太小所以可以直接忽视。
                          总之,当粮道全部在【街道】地形上时,计算兵粮支出是最简单的,而且支出也是最少的,多一格也就多3点兵粮消耗,而当粮道不完全在【街道】地形时,情况就会稍微复杂一些,而且会出现反常识的结果,下面会继续讨论这种情况。


                          IP属地:北京13楼2023-05-18 14:11
                          收起回复
                            我再试着处理下数据,剩下的晚点更


                            IP属地:北京来自Android客户端14楼2023-05-18 14:58
                            回复
                              好好好


                              IP属地:福建来自Android客户端15楼2023-05-18 14:58
                              回复