我有一个谷歌电子表格,用于我的游戏信息。它包含2张 - 一张用于获取怪物信息,另一张用于团队信息。
怪物信息表包含攻击值,防御值和怪物的法术力费用。它几乎就像我可以召唤的怪物数据库。
团队表执行以下操作:
我一直在考虑使用query()函数,以便我可以使用SQL语句。 (这样我希望能直接检索列表中的列表)
Sample: Monster Info
A B C D
1 Monster Attack Defense Cost
2 MonA 1200 1200 35
3 MonB 1400 1300 50
... ...
Sample: Team
A B C D
1 Mana 120
2
3 Attack Team
4 Monster Attack Cost Total Attack
5 MonB 1400 50 1400
6 MonA 1200 35 2600
7 ... ...
我在“团队”表单中有这些公式
这只能获得5个最佳攻击怪物,无论法术力费用如何考虑。我如何做到这一点,它需要考虑攻击值和法术力费用值?以下示例中显示了另一个问题:
Example: (simplified version, without defense value etc)
Monster Attack Cost
MonA 1400 50
MonB 1200 35
MonC 1100 30
MonD 900 25
MonE 500 20
MonF 400 15
MonG 350 10
MonH 250 5
如果我有160点法力值,那么显而易见的团队就是A + B + C + D + E(5100攻击)。
如果我有150点法力值,则变为A + B + C + D + G(4950攻击力)。
如果我有140法力值,则变为A + B + C + D(4600攻击)。
如果我有130点法力值,则变为B + C + D + E + F(使用125点法力值攻击4100点攻击力)或A + B + C + F值(使用全部130点法力值攻击4100点攻击力)。
如果我有120点法力值,则变为B + C + D + E + G(4050攻击力)。
如果我有110法力值,则变为B + C + D + F + H(3850攻击)。
如您所见,结果中并没有真正的模式。
是否有任何专家愿意分享他们对此的见解?
答案 0 :(得分:0)
我已经把这个问题玩了一个小时,我这里只有一个解决方法。您的问题似乎是一个标准的线性编程任务,应该可以通过" Solver"软件。曾经有一个所谓的" Solver"在谷歌电子表格,但遗憾的是它已从最新版本中删除。如果您不坚持使用Google解决方案,则应在Solver支持的电子表格管理器软件中进行尝试。
我尝试过MS Office(它有一个Solver加载项,安装指南:http://office.microsoft.com/en-001/excel-help/load-the-solver-add-in-HP010342660.aspx)。
在运行求解器之前,应该使用辅助列和单元格准备原始数据集。
在"费用"旁边添加一个新列。列(让我们假设它是列" D"),并在其下面放置每行0或1.此列将告诉您是否为攻击团队选择了一个怪物。
再添加两列(" E"和" F"分别)。这些列将分别是Attack和Cost的产品。所以你应该向E2单元写一个函数:= b2 * d2,对于F2单元:= c2 * d2。通过这种方式,如果选择了一个怪物(由D列告知,请记住),相应的E和F单元格将为非零值,否则它们将为0。
在最后一行下创建一个SUM行,并分别为D,E,F列创建一个汇总函数。因此,在我的电子表格中,D10单元格的值如下:= sum(d2:d9),依此类推。
我创建了一个电子表格来显示以下步骤:https://docs.google.com/spreadsheets/d/1_7XRlupEEwat3CthSSz8h_yJ44MysK9hMsj0ijPEn18/edit?usp=sharing
在启动解算器之前,请记住将此工作表复制到MS Office工作表。
现在,您已准备好启动Solver。 (数据菜单,MS Office中的解算器)。您可以使用解算器在此处观看视频:https://www.youtube.com/watch?v=Oyc0k9kiD7o
它看起来并不那么难,但对于这种情况,我将描述在哪里写:
设定目标:您应该选择" E10"单元格,因为它代表所有攻击点的总和。
检查" Max" radiobutton,因为我们希望最大限度地提高攻击价值。
通过更改可变单元格:选择" d2:d9"间隔,因为这些单元格表示是否选择了怪物。解算器将尝试调整这些值(0或1)以最大化和攻击。
受制于约束:这里我们应该添加一些约束。单击“添加”按钮,然后:
完成。它应该工作,在我的情况下它至少起作用。
希望它无论如何都有帮助。