悬赏令机制与组合选择(附代码)
2019/02/021262 浏览综合
本文写给每天都要纠结悬赏令怎么组合的人,并不长也并不难理解,但是不欢迎:
-> 随便打都能过(还非要告诉我)的大佬
-> “认真你就输了”的路人
-> “不管你说啥反正看不懂”的小学生
-> 阴阳怪气、冷嘲热讽者
悬赏令就是在给定的15种怪物中任意组合成五组,分别挑战,因为三种类型4倍赏金的机制,最好的选择当然是五组1+1+1,以保证最大收益,在此前提下,赏金是固定的,因此着重考虑的是保证每一组打过,或者对于大佬来说,每一组都轻松打过。那么我们的目标就是:让五组敌人中最大战斗力最小。
首先,确定战斗力与赏金的关系,为什么呢?直接算战斗力之和不行吗?这是因为看战斗力太麻烦,而且还要手动加。根据统计,战斗力与赏金存在线性关系:

战斗力≈赏金*43.15-10000,这里说明下,数据来源于我个人连续七次的悬赏令,如果通关章节和等级与我不同,系数可能不同,但是线性关系应该是存在的,那么显然让五组中赏金和的最大值最小即可。
问题来了,五组那可是……14400种组合呀,我怎么知道这14400种组合中,哪一个的赏金和最大值最小呢?当然要靠编程啦~
这里给出一个c++代码,放在二楼好了,结果大概长这样(程序是直接在代码中输入数据,也可以自己改成手动输入):
