谷歌电子表格与SQL查询-寻找最佳组合
我有一个谷歌电子表格用于我的游戏信息。它包含两张表-一张用于怪物信息,另一张用于团队信息 怪物信息表包含怪物的攻击值、防御值和法力消耗。它就像一个我可以召唤的怪物数据库 团队工作表执行以下操作:谷歌电子表格与SQL查询-寻找最佳组合,sql,google-sheets,combinations,Sql,Google Sheets,Combinations,我有一个谷歌电子表格用于我的游戏信息。它包含两张表-一张用于怪物信息,另一张用于团队信息 怪物信息表包含怪物的攻击值、防御值和法力消耗。它就像一个我可以召唤的怪物数据库 团队工作表执行以下操作: 询问我目前拥有的法力值 计算最多5个我可以召唤的怪物列表(可以少于5个) 每个怪物都有自己的法力消耗,因此总法力消耗不得超过我在第1点给出的法力值 列表应该给我一个组合攻击值最高的团队。召唤多少怪物并不重要。但是每个怪物不能被召唤两次 我一直在考虑使用query()函数,以便使用SQL语句。(这样我就有
- A5:=查询(‘怪物信息’!$A$:$D,“按B描述限制5选择A、B、D订单”)
- B5:=继续(A5,1,2)
- C5:=继续(A5,1,3)
- D5:=C5
- A6:=继续(A5、2、1)
- B6:=继续(A5,2,2)
- C6:=继续(A5、2、3)
- D6:=D5+C6
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法力,它将变成+B+C+D+G(4950次攻击)
如果我有140点法力,它将变成+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次攻击)
正如您所看到的,结果中并没有真正的模式
有没有专家愿意分享他们对这个问题的见解?这个问题我已经研究了一个小时,我这里只有一个解决办法。您的问题似乎是一个标准的线性规划任务,应该可以通过“解算器”软件轻松解决。谷歌电子表格中曾经有一个所谓的“解算器”,但不幸的是,它被从最新版本中删除。如果您不坚持使用Google解决方案,您应该在Solver支持的电子表格管理器软件中进行尝试 我尝试了MS Office(它有一个解算器加载项,安装指南:) 在运行解算器之前,应该准备一点原始数据集,包括辅助列和单元格
- 首先,我们应该确保d2:d9都是二进制值。所以“单元格引用”应该是“d2:d9”,从下拉菜单中选择“bin”作为二进制
- 另一个限制应该是所选怪物的总和不应超过5。因此,选择表示所选怪物总和的单元格(D10)并添加“仍然没有人知道如何做到这一点?谢谢你的回复。但很明显,我已经很久没有登录了,所以我不知道这里有回复。如果我没记错的话,我当时就放弃了,我现在没有任何其他场景需要这样做。然而,我并没有想到office中有一个solver附加组件。我想总有一天我会去看看的
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