900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 阴阳师悬赏封印求解

阴阳师悬赏封印求解

时间:2021-06-13 12:25:57

相关推荐

阴阳师悬赏封印求解

1.前言

上回书我们说到,求解阴阳师悬赏封印的最优策略是一个线性规划问题,更准确的说是一个整数规划问题。上次的初代模型中,我们在探索副本关卡中求解。

2.初代模型存在的问题

在初代模型中,我们给出了矩阵A。

首先该模型仅包含了探索副本的所有关卡,忽略了御魂副本、秘闻副本、挑战关卡,因而有局限性。其次没有对关卡进行筛选,因为阴阳师们的能力不同,可以攻打的关卡也不同。例如根据初代模型的结果,应当挑战第十七章的某个关卡,但是我太菜了,只能打到第十六章。

3.改进

首先我们按照上次的方法获取原始的御魂妖怪、秘闻等数据并处理。

其次我们对初代模型进行改进。

def optimize(monsterList,monsterNum,exploreMax, enableChallenge, yuhunMax, miwenMax):

参数说明:

monsterList-需要的妖怪列表 list

monsterNum-需要妖怪的相应数量 list

exploreMax-探索最大章节 int

enableChallenge-是否允许挑战 boolean

yuhunMax-御魂副本的最大层数 int

miwenMax-秘闻副本可以达到的最大层数 list

通过后四个参数,我们就可以限定当前可以挑战的关卡范围,从而不至于出现求解结果超出阴阳师能力的尴尬情况。

4.界面设计

1)筛选器

首先是一个筛选器,用来限定阴阳师可以挑战的关卡范围。

2)妖怪选择器

接着是一个妖怪选择器,一般的悬赏封印都是四种不同的妖怪,但我们也允许用户添加或删除。选好之后点击计算按钮。

3)计算结果

即可得到一个计算结果。有理由相信,这就是最优解!

5.用户体验改进

考虑到筛选器部分的操作过于繁琐,如果每次进入页面都需要用户重新选择的话,显然用户体验过于差劲。我们可以将用户的初次选择记录到浏览器cookie上,下次使用直接将上次用户的选择作为默认选项。

6.民用接口

我启用了备用服务器,各位阴阳师可以访问

http://47.100.225.209

进行规划

7.工作回顾

8.细思极恐

突然听说整数线性规划问题好像是个NP问题!因此在规划求解时,我设置了三秒的最大求解时间,防止程序阻塞。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。