【LoveLive SIF】从UR叠喂最优解问题谈运筹学入门

这节课内容我之前在贴吧发过三贴,分别是:
【1】一种基于lingo软件的UR升级最佳喂法的通用解法
https://tieba.baidu.com/p/6541347702
【2】1-7级UR在不同同卡数下升8所需最小经验及方案表
https://tieba.baidu.com/p/6607353641
【3】双人卡多同卡叠喂最佳策略表
https://tieba.baidu.com/p/6975289475
第一帖阐述了如何把UR叠喂问题化为整数线性规划问题并用软件求解;第二贴更细化一步,加了剪枝的方法,严格论证了叠喂会用到的基本方案以及常见情况下的最优解;第三帖在第二贴基础上再扩展出去,研究了双人卡叠喂。这一系列研究彻底解决了UR叠喂最优解的问题,且个人觉得研究思路和故事完整性都十分经典,但三贴发表时间有先后,比较乱,故本次专栏重新整理汇总了一下,加了更有趣的例题,之前看过的话可以跳过。

1. 什么是UR叠喂问题?

在Lovelive SIF中,UR的技能等级从1级开始,最高8级封顶。技能等级极大影响到卡组强度,是个十分重要的指标。提升技能等级有且只有两种方法,一是喂“经验卡”,每一等级都有相应的经验条,喂到相应数目的经验卡之后就能升级;二是喂相同的卡,简称同卡,喂不同等级的同卡可以一次性获得数目不等的大量经验值。当然,作为获得经验的代价,喂完之后经验卡或者同卡都会消失。每一级UR升级所需经验值,以及作为被喂的对象时提供的经验值如下表所示。

以1级为例,1级升2级需要300点经验,若将1级卡直接喂给别的同卡,别的同卡可以获得1000经验;2级升3级需要600经验,若将2级卡直接喂别的同卡,可以获得2000经验,以此类推。所以,将1级卡升满到8级,累计需要29900经验。8级之前,超出每一级的溢出经验都会累计到下一级,但超过8级时溢出经验做浪费处理。额外经验即为叠喂经验-累计经验,指将该等级的卡直接喂给别的同卡时,其等价的额外经验值。
游戏中,同卡可以通过贴纸交换、自选礼包等途径获得,并不比经验卡更难获取(直接获得的同卡都是1级的),因此大部分玩家为了加速升上8级,需要综合利用同卡和经验卡,来叠喂一张UR。此时,如何最大化利用同卡,成了本专栏研究的课题。

让我们看几个例题:
① 某玩家有相同的卡5张(均为1级),需要多少经验卡才能喂出一张8级的卡?
仔细观察表格,会发现4级或5级的叠喂效率最高,此时每同卡等价经验3600。将5张卡中的1张作为底卡,剩下同卡4张,分别用经验卡将其喂上4级,然后喂给底卡。这个过程消耗经验卡2400*4,底卡获得经验6000*4=24000经验升7级,查表可得,离下一级的经验条是5900/12000。剩下不足部分再用经验卡补齐,共消耗2400*4+(12000-5900)=15500。
故本题答案是需要15500点经验卡+4张同卡,才能喂出1张8级卡,相比简单粗暴直接喂29900点经验卡省了近一半。是不是很容易?让我们看下一题。

② 某玩家有相同的卡10张(均为1级),需要多 少经验卡才能喂出一张8级的卡?
同理,将一张卡作为底卡,剩下同卡9张。如果全部喂上4级,底卡可以获得6000*9=54000,远远超出了升满所需的29900。从表格的额外经验一栏可以看出,每张同卡从4级到1级的等价经验是逐渐降低的,所以接着尝试3级。如果全部喂上3级,底卡获得4000*9=36000,还有溢出;接着进一步调整喂3级和喂2级的数目,最终得出,9张同卡中6张喂3级,3张喂2级,共消耗900*6+300*3=6300经验,底卡获得4000*6+2000*3=30000升满,故该玩家至少需要6300点纯经验+9同卡才能升满,如下图所示。

相信绝大部分第一次接触的玩家都是这个思路,但真的是这样吗??再仔细想一想??

本题的陷阱在于,叠喂不仅可以一张卡喂到一定等级然后喂给底卡,在同卡数量远高于全部升4叠喂的所需数量时,先在同卡之间相互叠喂,然后再喂给底卡,往往比直接将同卡升到2或3级喂给底卡更为效率。例如,我们先给第一张卡喂300经验升到2级,然后将该2级卡喂给1张新的1级卡,获得2000经验,再额外补400升到4级,再将4级卡喂给底卡获得6000经验。该方案共消耗2张同卡+700经验套取了6000经验,而一张升2一张升3同样套取6000经验,消耗300+900=1200经验。同理,还可以第一张卡1级直接喂给第二张卡,第二张卡升3后喂给底卡;或者第一张卡升3后喂给第二张卡,第二张卡补经验上5后喂给底卡;甚至还可以扩展到3张甚至4张互相叠,方案无穷无尽……
我们接着看本例题的另两种方案:


方案1即仅考虑一张卡叠喂的方案,消耗经验卡6300点;方案2考虑了两张卡叠喂的方案,消耗经验5600点;方案3考虑了3张卡叠喂的方案,消耗经验4100点。方案3和最初的方案1相比,节省了2200点经验。那有没有比方案3更省的方案?怎么证明一个方案是最优的,没有更优?这就是本节课的内容,具体过程较为复杂。从结论上来说,方案3已经是最优了,也许你可以找到一套同样最优的方案,但不可能比它更省,至于为什么是最优,怎么求最优,让我们继续看下去。

2. 整数线性规划、运筹学与Lingo入门
若把上题改为,某玩家有相同的卡10张,不考虑多张同卡之间的互相叠喂,仅考虑将单张同卡升到一定等级后直接喂给底卡,则需多少经验卡才能喂出一张8级?上一节中,我们通过人工凑出了答案。如果用规范的数学语言来表示,则需先设变量:我们假设1级直接喂w张,升到2级喂x张,3级y张,4级z张。如果喂5级需要5400经验+1同卡,获得经验9000点,和喂4级2400经验获得6000点再额外补3000点纯经验一致,也就是说,前者和后者完全等价,完全可以被后者替代,故不考虑为5级。具体变量如下表所示。

溢出时有:

未溢出时有:

其中,s.t.指限制条件,min=指求该式的最小值。我们需要在满足限制条件的情况下,得出最小值具体的值,以及此时各变量的取值。对比溢出和未溢出,取最小即为我们需要的值。
像这种,在所有式子都是线性的情况下的求最值问题称为线性规划,属于运筹学及应用数学的范畴。本题所有变量都是整数,又称整数线性规划,最常用的软件为lingo。打开Lingo软件,选择demo,参照下图格式输入上图的不等式组:

注意,每一行之间必须有分号,包括最后一行;一定要英语格式输入各种符号;数字和变量间的乘号不能省略。Lingo软件默认所有变量都是大于等于0的,但不一定整数,因此需要输入@gin(),表示括号里面的变量是整数。输完后,点击上面的靶标求解,然后会跳出来结果:

黑框的variable指最优化时各变量的取值,红框的global opt指全局最优,意为该结果可信,是最优解。Objective指该情况下最值的取值。本题得6300,具体为x=3,y=6,即2级3次,3级6次。同理,非溢出情形得6900,w=1,x=2,y=6,再补900经验,不如溢出方案。
Lingo背后的原理为单纯形法,其时间复杂度仅为O(n),就算变量和限制条件非常多也能秒算。具体原理笔者也不甚了解,我们仅需通过这个例子知道,只要你能把不等式列出来,就能通过Lingo轻松秒算最优解。就算不是线性规划,涉及分数、平方等运算时,也能用Lingo来做,此时可能出现“局部最优”,不一定是“全局最优”。
本题我们将溢出和非溢出分别列式,计算最优后再人为比较。Lingo也可以输入语句将两者合并到一个模型中,不过为了讲解直观,我们下文还是分开算。Lingo的详细使用可以参考关于数学建模的课程和书籍,有非常多功能选项,本节课涉及的整数线性规划仅为最基础部分。

3. 基本叠喂方案的确立
3.1 一阶叠喂基本方案
看完上一节,你可能会问,搞这么复杂,得出的结论和凑得不是一样吗?不要急,我们一步步来。我们把一次消耗几张卡,就称为几阶叠喂,上一节中,我们已经得出了一阶叠喂的四个基本方案:

5级叠喂和4级叠喂再额外加3000经验完全等价,前者完全可以被后者替代,后者还更灵活,因此5级方案根本不用考虑,6级以上同理(低阶方案+纯经验甚至可以更强)。我们把这些不可替代的方案称为基本方案。
3.2 二阶叠喂基本方案
然后,我们通过一阶方案推导二阶方案。二阶方案只有一种可能:第二张卡把第一张卡吃了,再把第二张卡喂给底卡。决定底卡获得多少经验的仅仅只是第二张卡的等级,与它是如何吃的,怎么喂的无关。一张1级卡直接喂可以提供1000经验,使第二张卡升到3级,因此二阶方案至少从3级起步。如果我们想通过二阶方案获得一张3级的卡,再将3级卡喂给底卡,则最佳方案肯定是将1级卡直接喂给第二张1级卡升3(因为此时消耗的经验是0),记为1-3。如果我们想通过二阶方案获得1张4级的卡呢?同第二节,我们不计算把一张卡升到8,我们只算将其升到4(累计经验2400)的,最省经验的喂法。
溢出时有:

未溢出时有:

解得,最佳方案为未溢出方案,x=1,min=700。先将第一张喂300经验升到2级后,喂给第二张卡,获得2000经验再补400经验正好升4,然后将四级卡喂给底卡,我们将其记作2-4。整个过程消耗700经验+2同卡,套取6000经验。
同理,把上述不等式的具体数字改一改,我们继续计算5级:用两张卡倒腾出一张5级的最省经验方案是未溢出方案,y=1,先将第一张喂900经验升到3级后,喂给第二张卡,获得4000经验再补1400经验正好升5,然后将5级卡喂给底卡,我们将其记作3-5。整个过程消耗2300经验+2同卡,套取9000经验。
6级时,最省经验方案是未溢出方案,z=1,先将第一张喂2400经验升到4级后,喂给第二张卡,获得6000经验再补4400经验正好升6,然后将5级卡喂给底卡,我们将其记作4-6。整个过程消耗6800经验+2同卡,套取12000经验。但是,4-6完全可以被2-4再额外加6000经验替代,后者同样套取12000经验,仅消耗6700经验+2同卡。因此4-6不是二阶叠喂的基本方案。7级时同理,我们整理得下表:

3.3 三阶叠喂基本方案
我们继续看三阶叠喂,即如何在三张同卡之间倒腾,用最少的经验卡得出一张恒定等级的同卡。三阶不同于两阶,它有两种可能:一是把第一张卡和第二张卡分别喂给第三张。二是先将第一张喂给第二张,再将第二张喂给第三张。前者对应的是两个一阶方案的线性组合,后者对应的是一个两阶方案,我们只需将之前得到的一阶和二阶基本方案作为备选,更新不等式,即可将这两种情况全部囊括在内,以5级为例:
溢出时有:

未溢出时有:

解得溢出方案最优,j=1,min=700。即先将第一张卡喂300经验到2级,再将其喂给第二张卡获得2000经验补400升4级,再将第二张卡喂给第三张卡,获得6000经验直接升5级,最后喂给底卡获得9000经验,整个过程消耗700经验+3张同卡,套取9000经验,记作2-4-5。同理,计算4级、6级的情形,并排除可以被替代的方案,整理得下表:

3.4 更高阶叠喂基本方案
我们继续把一二三阶的基本方案作为备选,更新不等式,来看看四阶的基本方案。不管四张卡怎么倒腾成一张,要么是3个1阶,要么是1个2阶一个1阶,要么一个三阶,全部都被囊括在内了。然后再将四阶的基本方案纳入备选,计算五阶,以此类推,具体过程省略,得下表:

9阶方案终于做到了0经验套取一张7级卡,然并卵,都完败其他方案组合,不能上榜。更高阶方案想要胜出,势必要到8级才行。然而都到8级了还喂个啥……
因此,四阶及更高阶方案中,有且只有一种基本叠喂方案:1-3-4-5。将第一张卡直接喂给第二张,获得1000经验升3级,再继续喂给第三张,获得4000经验升4级,继续喂给第四张,获得6000经验升5级,最后将五级卡喂给底卡,消耗0经验+4同卡套取9000经验。
3.5 基本叠喂方案总表
我们汇总上述基本方案到一张表内,得:

无论怎么去叠,只要是最求最省经验的方案,就一定是这张表的线性组合,出不了这张表的范围,这就是基本叠喂方案的定义。UR叠喂的基本方案有且只有十种,如上表所述。具体原因我们本节已经进行了充分论证。
(准确的说,只要是最求最省经验的方案,这张表的线性组合一定可以解决问题。也许你可以找到不在表内的方案同样最优,但不会找到更优的)

4. UR叠喂方案表
4.1 常规UR叠喂方案表
有了基本叠喂方案表,再看一开始的例题,就很容易了。只需依葫芦画瓢,将十个变量全部加入不等式即可。解得溢出方案更优,y=3,m=2,min=4100,即方案3为最优方案,不可能更优。我们根据同样方法,计算得到下表:

套即为-的意思,可以看到,在同卡数多的最佳方案中,会涉及大量的“套娃方案”,单纯的仅用一阶方案的组合会损失大量经验。
4.2 可换位的UR叠喂大表
在贴吧发布这个结论后,有吧友指出,如果我手上有一张4级0经验的卡和5张1级同卡,如果按上表最佳方案的3*4+(3-5)+500,需要消耗1w经验。如果我直接将1级同卡做底卡,将其他卡升到4级直接喂上去,只需9600,不过仅限于未觉醒(或自带觉醒)且没开槽。笔者通过对不等式进行了一些调整,加入换位后的策略,得到了可换位的大表,标注换位的指该情况下通过换位可以更省经验:

在十种基本叠喂方案之外,具体添加的策略:

换位后的高阶策略是我手动列的,不是严格一阶阶推导的,不排除有遗漏,不过我感觉应该不会。我们也可以通过同样的方法制作“必须换位的大表”,用于签名卡的叠喂升级问题……

至此,我们已经解决了普通UR的叠喂问题。只要给出到8级缺少的经验值和同卡数,就能轻松秒算最优方案。

5. 双人UR叠喂问题
双人卡是近一年来游戏新出的一种卡,和普通UR不同,它的特点是分A卡和B卡,A、B卡的卡面、属性、技能均不同。玩家抽卡时无法决定抽到A还是B,完全是随机的。A、B卡可以通过消耗一个转换币互相转换,转换后技能等级、当前经验等全都不变。每个转换币需要约近十小时的肝力才能得到,属于游戏内的珍稀资源之一。因此,例如某玩家想养A卡但不想养B卡,抽了10次box,出A卡3张B卡7张,如何在最节省转换币和纯经验下叠喂成了新的课题。
本节做的基本假设是,双人卡中一张想练,另一张不想练只是作为叠喂材料,且去除底卡后A、B卡都有抽到的最优叠喂方案。我们把想练的卡称为同侧卡,不想练的卡称为对侧卡。我们先看两个公理(因为一眼就觉得是对的,不需要也不会证明,所以就称公理了):
公理1:想要对双人卡叠喂,至少需要1个转换币。如果不消耗任何转换币,不可能用对侧的卡来喂同侧的卡。
公理2:相同同卡数(双人卡同卡数指去除底卡后同侧对侧卡数之和)下,双人卡叠喂的最优方案所需的最小经验数不可能小于普U叠喂方案表。这很容易理解,因为双人卡和普U叠喂比多了更多的限定条件,只可能比普U更多,不可能更省。
基于以上两点,我们就能解决绝大部分情况下的双人卡叠喂最优方案问题。
我们先假设一种双人卡的叠喂流程:将对侧任意一张卡作底卡,将对侧同卡叠喂完之后转换为同侧,再叠喂同侧同卡到满。以双人卡抽到了同侧卡3张,对侧卡5张为例。将对侧卡作为底卡后,剩同侧3对侧4共7同卡。查普U最佳叠喂方案表,7同卡方案为3*3+2*(3-5)。观察该方案,一阶叠喂3个,二阶2个。我们先将两个二阶先叠给对侧,把对侧同卡耗完,然后转换币转到同侧,再继续用同侧卡叠三个一阶。这样下来,和普U叠喂方案比,仅多消耗一个转换币,最小经验完全一致。基于公理1,2,因此认为这就是最优方案。
如果7同卡不是同侧3对侧4,而是其他组合,你会发现,仍然可以拆。例如2和5,则对侧叠三个一阶一个两阶,转换后继续叠一个两阶。纵观普U叠喂方案表,1-9卡的叠喂方案,不论同对侧卡数具体是多少,都可以完全拆干净。10-14卡的叠喂方案中,除个别同对侧数字组合没法拆干净以外,大部分也都可以完全拆成对侧和同侧,分别叠喂即可。
然后,我们对这些没法拆干净的数字组合单独拿出来研究。它们如下表所示:

对于上表情况,我们无法将其完全拆成对侧和同侧两部分。例如10卡的方案由2个2阶和2个3阶构成,无论怎么组合都绝对组不出1。14卡方案由2个4阶2个2阶组成,偶数无论怎么加也不可能加出奇数。我们继续对这部分的最优方案论证。如果考虑消耗多个转换币来叠喂的情况会比较复杂,我们先考虑仅消耗一个转换币的情况。
公理3:在双人卡叠喂问题中,如果仅打算消耗一个转换币,则仅有将对侧卡作为底卡,并叠喂完对侧卡所有同卡后转换至同侧,然后叠喂同侧卡的流程才能用满所有同卡。我们把这个流程称为双人卡基本叠喂流程。
公理3很容易理解,我需要的是同侧卡不是对侧卡,仅有一个转换币不可能把同侧转对侧,肯定对侧转同侧。如果没有把对侧卡叠完就转同侧了,那剩下的对侧卡就用不上了。值得说明的是,这里的同卡指的是去除底卡后的同卡,如果对侧卡仅1张时,将该卡作为底卡后,对侧卡剩0,直接转换至同侧后处理,只是描述上和“把同侧卡当底卡,然后唯一一张对侧卡转过来叠喂”不同,实质是一样的,仍然符合公理3。
基于公理3,我们继续研究这个双人卡基本叠喂流程。这个流程和普U叠喂流程相比,分为两部分:第一部分是对侧叠喂,第二部分是同侧叠喂。普U的最优方案是基于基本叠喂方案的整数线性规划得出的,同理,我们可以分别对对侧和同侧两部分行整数线性规划得到最优解。但问题是我不知道两部分的分界线是哪里,虽然可以把对侧同卡数所对应的所有基本方案的组合都试一遍,找出两部分相加最小的方案,但过于繁琐,可以肯定的是,这两部分所用到的叠喂方案肯定不会超过基本叠喂方案表。整理得推论1:
推论1:双人卡基本叠喂流程是仅用一个转换币的双人卡叠喂的唯一流程,其用到的具体叠喂方案仍然在基本叠喂方案表范畴内。
有了推论1,问题就可以继续往前推进了。我们只需在普U的多同卡叠喂的整数线性规划时,额外对一、二、三、四阶方案的个数进行限制即可。例如,一个叠喂方案如果能拆出1,它肯定得有至少一个一阶方案,此时我只需额外加入不等式:所有一阶方案之和≥1(w+x+y+z≥1)即可;如果不是1而是4,则稍微有些复杂。4可以且仅可被拆为1111,112,22,13,4任意一种,他们需要额外增加的不等式分别是w+x+y+z≥4,w+x+y+z≥2&i+j+k≥1,i+j+k≥2,w+x+y+z≥1&m+n≥1,o≥1。分别对这五种情况算出各自的最优方案,比较后得出五种情况的总最优方案即为该情况下的最优方案。其他同理。对上表非1的情况总结得下表:

整理上表和未列在表上的拆1方案,得到了双人卡最优叠喂方案大表:

然而,公理3是基于仅用一次转换币的。该表仅保证了在消耗一个转换币的时候最优,不能保证消耗多个转换币会不会更优。但是,通过这张表我们可以很清晰的看出,即使是没法被完整拆分的同/对侧卡数,基于公理2,其经验损失仅为2-300,远低于一个转换币的成本。如果玩家愿意多花转换币减少经验损耗,上表中的特殊数字组合并没有连续,仅需提前将任意一张同或对侧卡转换后,即可直接按照无损的方案进行。所以,综上所述,我们论证了该表格就是双人卡同卡叠喂的最优方案表。

6. 组合叠喂问题
至此,我们已经解决了单张UR的叠喂问题。Lingo不仅能算单张叠喂,还能算多张叠喂的组合策略,我们看几个例题:

①小明手上有1级UR、5级UR、7级UR各一张,彩贴28张(假设可以全部换到14张任选的同卡,不考虑三换一或高阶叠喂时产生的余数),求将他们全部升到8所需的最小纯经验数。
我们回顾之前的大表,1级UR有14种喂法,5级UR有12种喂法,7级UR有6种喂法,分别将其设为x1-x14,y1-y12,z1-z6。若x1=1,代表使用1张同卡+23900经验将1级UR叠满;若y12=1,代表使用12张同卡+0经验将5级UR叠满,以此类推。由于同卡数明显多于全部4级叠喂需要的数目,因此出于简便,不对需要消耗同卡数过少的情况建模。
则有:

lingo界面截图(截图省略@gin限定所有变量为整数的部分):

解得x7=1,y5=1,z2=1,其余均为0,min=19600。其含义是1级UR通过3*3+2*(3-5)方案,5级UR通过4+2*(3-5)+500方案,7级UR通过2*4方案,各自叠到8级,最小消耗经验为19600。计算又快又准,Lingo是不是非常实用?

② 小明手上有1级UR(红色)、5级UR(绿色)、7级UR(蓝色)各一张,红色经验4000点,绿色经验3000点,蓝色经验4000点,紫色经验6000点,求若将所有UR全升到8,所需换的最少同卡数。
游戏中,同色经验只能喂给同色UR,不能喂给异色,紫色可以通用,随意喂给三色。这题比上一题增加了经验数的细化。同样,我们设x5-x14,y4-y12,z2-z6为各自方案的数目,另设中间变量p1、p2、p3分别代表红色UR、绿色UR、蓝色UR吃到的紫色经验数。为表达简便,我们设f(n)为x5-14各自对应的消耗经验数的映射,g(n)为y4-12各自对应的消耗经验数的映射,h(n)为z2-6各自对应的消耗经验数的映射,则有:

Lingo截图(同省略整数定义部分):

解得x8=1,y6=1,z2=1,min=16。意味着1级红UR通过3*3+(3-5)+(2-4-5)方案,消耗4000红经验+1700紫经验升满;5级绿UR通过2*(3-5)+(2-4)+500方案,消耗3000绿经验+2800紫经验升满;7级蓝UR通过2*4方案,消耗4000蓝经验+800紫经验升满。至少需要换16张同卡。
但是!!Lingo只能给出目标方程最小的一个解。如果目标方程有多个解同样最小时,就需要自己手动的通过修改条件或增加不等式来试了。我们这边通过修改紫色经验总和,使其不断往下降,看看降到什么时候会从16跳到17,会不会存在换同卡数相同,但可以更省经验的组合方案。
最终解得,5300紫经验是极限。方案为x7,y7,z2=1。消耗的总经验和x8,y6,z2=1一致,均为16300。两种方案都是可行的。虽然题设给了6000经验,但可以省下700不会用上。
这种通过在不等式中加入中间变量的做法十分常用,需要掌握。

③ 某双人卡同侧卡为pp,对侧卡为cf。小红抽了34张pp,31张cf,想叠喂成满级的pp卡5张,cf卡2张。请帮他设计一套最省经验及转换币的叠喂方案。
本题去除底卡后,不含底卡的同卡共34+31-7=58张,pp/cf=29/29张。无论如何叠喂都可以归为三类:pp卡内部叠,不带cf,变量设为xn;cf卡内部叠,变量设为yn;pp/cf按双人卡叠喂规则一起叠,变量设为zn。和前两题一样, n代表叠喂的张数。比如说,按照7同卡叠喂的最佳方案叠一次(查普UR叠喂表,最佳方案是3*3+2*(3-5),消耗纯经验7300+7同卡喂满),即x7=1。理论上来说n∈[1-14],但为简便,我们不对明显不合理的叠喂方案建模,x的n取4-10,yz的n取4-14。同样,设f(n)为xn,yn,zn各自对应的消耗纯经验的映射(三者的映射完全一致,严格来说z10-z14需要分情况讨论,不过我们先不管,这题后续也没碰到没法拆干净的情况)。由题意,pp/cf同卡数量差不多,而需要的8级pp远多于cf,因此转换币要么cf/pp一起叠消耗一个,要么cf内部叠完消耗一个转成8级pp,不可能是pp叠满8级再转cf。因此转换币数目=sum yn+sum zn-2。
所设变量如下表所示:

有:

Lingo截图:

我们先设转换币为1,解得x7=3,x8=1,y9=1,y10=2,min=37300。即pp内部3个7叠1+1个8叠1,cf内部2个10叠1+1个9叠1,最后一张8级PP转CF即可。若假设转换币为2,解得pp内部1个7叠1+2个8叠1,cf内部3个9叠1,剩pp/cf=6/2,混搭后按双人卡叠喂方案8叠1。共消耗纯经验36700,转换币2个,一个用于混搭叠喂,另一个用于CF转PP。假设转换币为3或以上时,最小消耗纯经验不再变化。具体n叠1怎么操作可以查看之前的大表,这里不再复述。故本题最优解是37300经验+1转换币。

7. 思考题
这次思考题出的容易一些吧,组合叠喂问题有点太难了,第六节就当例题展示了。

① 签名卡叠喂问题
小刚手上有一张4级的UR,最近通过签名卡池,又抽到了7张同卡,其中1张签名卡。即手上有1张1级的签名U+1张4级同卡+6张1级同卡。请帮他设计一套最省经验的叠喂方案,使签名卡喂上8级。
估计看到这儿的都是玩游戏的不会有纯粹学数学的了,以防万一还是介绍一下,必须将签名U作为底卡,将其他卡喂给它。和之前唯一不同的是,前面我们算的都是1级的同卡,这次同卡里面混了一张4级的,基本方案会有所改变。
(这题要算的话有点麻烦,但可以直接查之前的表,看会不会活用大表)

② SSR叠喂问题
随着自选SSR券的不断增多,SSR同卡叠喂也不再是不可能。已知SSR的经验表格如下所示,求SSR叠喂的基本方案。

全文到此结束,撒花,希望能给运筹学的基本思路做一个科普吧,专栏参加不了游戏知识的限时活动有点可惜。UP主也不是学理工科的,很多数学的东西是好奇然后查了用,试着摸索着就会了。不知道有没有人看完的,欢迎评论、提问、指正~
