我有一个谷歌电子表格,我的游戏信息。它包含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 (4100攻击使用125个法力)或A+B+C+F (4100攻击使用所有130个法力)。
如果我有120个法力,它就变成B+C+D+E+G (4050攻击)。
如果我有110个法力,它就变成B+C+D+F+H (3850攻击)。
正如您所看到的,结果中并没有真正的模式。
有专家愿意分享他们对此的见解吗?
发布于 2014-04-25 12:26:38
我已经处理这个问题一个小时了,我在这里只有一个解决办法。您的问题似乎是一个标准的线性规划任务,应该可以很容易地解决“解决”软件。谷歌电子表格中曾经有一个所谓的“解决程序”,但不幸的是,它被从最新版本中删除了。如果你不坚持谷歌解决方案,你应该尝试在一个解决方案支持的电子表格管理软件。
我尝试了MS (它有一个解决方案插件,安装指南:http://office.microsoft.com/en-001/excel-help/load-the-solver-add-in-HP010342660.aspx)。
在运行解决程序之前,您应该准备一些原始数据集,其中包含辅助列和单元格。
我创建了一个电子表格来显示以下步骤:yJ44MysK9hMsj0ijPEn18/edit?usp=sharing
在启动解决程序之前,请记住将此工作表复制到MS Office工作表中。
现在,您已经准备好启动解决方案了。(数据菜单,中的解决程序)。您可以在这里看到使用Solver:https://www.youtube.com/watch?v=Oyc0k9kiD7o的视频
这并不像看上去那么难,但在本例中,我将描述在哪里写什么:
- First we should ensure that d2:d9 are all binary values. So "Cell reference" should be "d2:d9" and from the dropdown menu, select "bin" as binary.
- Another constraint should be that the sum of the selected monsters should not exceed 5. So select the cell where the sum of the selected monsters is represented (D10) and add "<=" and the value "5"
- Finally we cannot use more manna that we have, so select the cell in which you store the sum of used manna (F2), and "<=", and add the whole amount of manna we can spend in my case it's in the I2 cell).
好了。它应该能起作用,至少在我的情况下是起作用的。
希望能帮上忙。
https://stackoverflow.com/questions/19871454
复制相似问题