ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > 我的酷贴 > 操作与技巧 > Excel规划求解之九宫格问题

Excel规划求解之九宫格问题

作者:绿色风 分类: 时间:2022-08-18 浏览:142
楼主
chrisfang
九宫格问题是一个很古老的数学问题,就是要求将1~9九个数字分别填入3行3列的九个格子之中,使得其各行、各列、各对角线上三个数字相加的和均为15。
对于这个问题,可以使用Excel中的规划求解工具进行运算。具体设计步骤如下:

1,首先,假定九宫格位于A1:B3单元格区域中,然后通过公式对其各行、各列、各对角线进行求和,形成8个求和公式,这8个求和公式将被用作规划求解中的约束条件。
如下图所示,例如E4单元格中公式为=A1+B1+C1

 

2,九宫格中可以填入的数字为1~9,每个数字仅可使用一次并且必须被使用一次,可以制作一张二维表,将九个格子中每个数字的使用情况详细列出,以数字0和1表示是否被选取,此区域将作为规划求解的可变单元格区域。如下图所示。

 

对于这个二维表格的纵向每一列来说,相当于每个数字被某个九宫单元格所选取的情况,例如第一列即数字1被选取的情况,此列数值只有唯一一个等于1,表示数字1只能被选中1次,所以可以将此列数值求和,形成数字1被使用的唯一性的校验。
对于这个二维表格的横向每一行来说,相当于每个九宫单元格选取不同数字的情况,例如第一行即A1单元格选取了某个数字,此行数值也有且仅有一个等于1,表示A1单元格中只能填入一个数字,所以可以将此行数值进行求和,形成A1单元格选取数字的唯一性的校验。

通过以上横向和纵向的唯一性校验,可以形成规划求解所需的另外18组约束条件。

3,根据上面的二维表格,可以得到九宫格中各个单元格的实际选取数字,在T4单元格中输入公式=SUMPRODUCT($J$3:$R$3,J4:R4)并向下复制,可以在T列形成九宫格数字的具体取值。为了更好地在九宫格中显示结果,可以在A1:B3单元格中对T列数据进行链接引用。

4,准备好以上这些规划求解的可变单元格区域和约束条件公式以后,可以开始进行具体的规划求解设置,其设置方法如下图所示:

 

选项中,“设置目标”留空(在规划求解中,目标值和约束值可以互相转换,对于此例,可以不舍定具体目标值,而将所有充分必要的约束值设定完整即可)。
可变单元格区域为:$J$4:$R$12
约束条件包括8组和值为15的求和公式(E4:F6、G4:G5)
18组唯一性校验的公式(J13:R13、S4:S12)
还有可变单元格的取值为二进制BIN,表示可变单元格数字可以在0和1之间变化,作为1~9数字是否被选取的标志。
最后注意选择“单纯线性规划”选项。

5,设定完成后,单击“求解”按钮可以开始规划求解工作,找到其中一组解时会弹出对话框:

 

对于九宫格问题,包含的可能解法有许多,如需寻求更多种答案,可尝试改变可变单元格区域的初值,进行再次求解。


规划求解之九宫格1.rar
2楼
chrisfang
在Excel 2010中,规划求解的选项又有新的改变,上述九宫格问题也可以通过以下简化方法进行求解:
1,参照上面帖子中的步骤1,设定九宫格布局和各行、各列、各对角线的求和公式:

 

2,打开规划求解,设定参数如下图:

 

其中,目标值仍留空。可变单元格区域则直接设定为九宫格所在区域。
约束条件包括以下几项:
8组求和公式和值为15(E4:F6,G4:G5)
可变单元格各项不同(Alldifferent)
可变单元格取值范围>=1,且<=9。
最后注意选择“单纯线性规划”选项。

3,设定完成后单击“求解”按钮进行求解工作,找到答案时显示如下:

 


规划求解之九宫格2.rar
3楼
dawin2046
2010的alldifferent挺不错的。

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap