如何用Excel Solver求解5×5数字开关求和游戏?
用Excel Solver求解5×5数字求和游戏的思路
嘿,这款游戏还是我儿子发现的,我现在玩得停不下来!先给没接触过的朋友捋下游戏核心:
游戏主体是一个由0-9数字组成的5×5网格,每行每列的末尾都标有目标和。网格里的每个数字可以开启或关闭,当选中的数字总和刚好匹配对应行/列的目标和时,那一行或列就会高亮显示。
我尝试用Excel Solver来自动求解,设计思路如下:
1. 基础单元格布局
- 用单元格
B2-F6来存放游戏里的5×5数字网格(对应每行每列的0-9数字) - 另外设置一组“开关控制区”,比如
G2-K6,每个单元格用0或1标记对应数字是否开启(0代表关闭,1代表开启)
2. 求和公式设置
- 每行实际求和:在每行末尾的单元格(比如
L2-L6)输入公式=SUMPRODUCT(B2:F2, G2:K2),这个公式会自动计算该行所有开启数字的总和,方便和行目标和做对比 - 每列实际求和:在每列底部的单元格(比如
B7-F7)输入公式=SUMPRODUCT(B2:B6, G2:G6),同理计算该列所有开启数字的总和,和列目标和对比
3. Solver参数配置
这一步是关键,得把规则给Solver讲清楚:
- 目标设置:我们不需要指定特定目标值,重点在约束条件,所以“值为”随便填个0就行
- 可变单元格:选中所有开关控制单元格
G2:K6,设置约束为二进制(因为每个数字只有开/关两种状态,对应0或1) - 约束条件:
- 每行实际求和单元格(
L2-L6)必须等于对应的行目标和单元格 - 每列实际求和单元格(
B7-F7)必须等于对应的列目标和单元格
- 每行实际求和单元格(
- 求解方法:选择单纯线性规划,因为这是个典型的0-1整数规划问题,这个方法效率最高
内容的提问来源于stack exchange,提问作者DaveX
相关产品推荐
相关产品推荐

