九宫格的解题过程

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
96¸3=32,得到九个数字为 28,29,30,31,32,33,34,35,36。4 个角上的数字为 29,31, 33,35,其中 35 和 29 为对角关系,31 和 33 为对角关系。
问题 3:成公差为 d(d!=0)的等差数列是否也填九宫格?比如公差为 3 的等差数列,1,4,7,10,13,16,19,22,25,如何填九宫格呢?5,15, 25,35,45,55,65,75,85 又怎样填?
幻方的填写是有规律的,我想通过上面两个两个幻方可以找到一些规律。偶阶幻方的填写规律比奇阶幻方要稍微 复杂——小声点说,我还不是太明白,还在继续学习中。
练习 1:.完成一道数独游戏题吧,说不定下回哪个考试也会有这样的题呢!
练习 2:3 阶幻方三个数的和是 15,5 阶幻方五个数的和是 65,你能说出 7 阶幻方中七个数的和 是多少吗?进一步,你能说出奇阶幻方中 n 个数字的 和是多少吗?
问题 1:已知 9 个相连的整数填充的九宫格其每行数字和为 45,求这九个
数字。
中间格数字为 45¸3=15,15 为正中间的数字,因此九个数字为 11,12,13,14,15,16,17,18, 19。
问题 2:已知 9 个相连的整数填充的九宫格其每行数字和为 96, 求九宫格 4 个角上格子里的数。
(在最上一行的中间填 1,接着在 1 的右上方填 2,由于 1 在最上一行, 所以 1 的右上方应该是第五行的第四个, 接下来在 2 的右上方填 3,3 的右上方应该是第三行第一个,所以在此填 4,在 4 的右上方填 5, 在 5 的下方填 6,接着按前面五个数的填法依次填 7,8,9,10; 在 10 的下方填 11,然后按上面的方法填, 每次填五个数,直到完成.
接下来所谓的大对角线换,小对角线换就是 1 和 16 换,4 和 13 换,6 和 11,7 和 10,换完就出来了:
横竖斜都是 34。 然后问题就来了,有没有办法可以解出任意高偶数阶的幻方的方法呢?
我曾经很傻很天真的试图把 4 阶这种换对角线的方法推广到 6 阶,但是怎么弄都未果,估计这种方法 对于 4 阶只是种巧合吧。 后来大学玩 matlab 后,发现 matlab 里面函数 magic 可以输出任意阶的幻方,哦,soga,原来真的有 的啊。
九宫格的解题过程
第 1 步首先计算每行数字之和。
1-9 九个数字之和:1+2+3+4+5+6+7+8+9=45 九宫格共有三行,并且每行的数字之和相等,因此 45/3=15,即每行数字之和为 15。
第 2 步计算中间格的数字。
考虑第 2 行,第 2 列,和 2 条对角线的数字之和。它们的总和为 15/4 = 60。在它们的总和中, 中间格子的数字出现了 4 次,其它位置格子的数字都出现了而且仅出现了 1 次。 所以,它们的总和=(4×中间格子的数字)+(其它 8 个数字)
练习 3: 完成一个 7 阶幻方。
比如说三阶幻方,先向外翻折扩展,然后按上图左二的规律,按顺序写上 1-9 的数字,接下来幻方之外的数,按左往 右仍,右往左仍,上往下扔,下往上扔的规律填进幻方,将其余的删去,就得到一个横竖斜都等于 15 的幻方了! 下图是五阶幻方的解法,方法相同,只是规模大了点。
显而易见,上面九宫格每行每列每对角线数字之和为 18,奇数 3,5,7,9 处在 4 个角上的格子里, 中间数 6 处在中间的格子里。
从 1-9 和 2-10 各九个数字所填充的九宫格可以得出下列规律: 1)九个数字是由 9 个相连的整数构成的。 2)九个数字中正中间的数字填在九宫格的中间格子里。1-9 中的 5,2-10 中的 6 等。 3)每行每列的数字和等于中间数字的三倍。比如 15=5´3 和 18=6´3。 4)第 2,4,6,8 位的数字填充到 4 个角上的格子里。如 2,3,4,5,6,7,8,9,10 中的 3,5,7, 9 和 1,2,3,4,5,6,7,8,9 中的 2,4,6,8。
a(blank_idx) = number_left; a = reshape(a,n,n)'; 单偶数解法:下面来看看单偶数的解法,这种现在主要有两种方法,分区法和易位法。其中呢,分区 法也有两种。 先说分区法,首先呢就是把方阵划分成下面 A,B,C,D 四块,因为是单偶数,所以每一块必然是个奇数 幻方。
=(3×中间格子的数字)+(1-9 九个数字之和) 因此, 60=3×中间格子的数字+45,中间格子的数字等于 5
第 3 步,奇数不能出现在 4 个角上的格子里。
比如,如果数字 9 出现在角上的格子里,那么为了保证 9 所在行或所在列的数字和为 15,必须需 要 4 个数字,两两之和必须为 6。1,2,3,4,6,7,8 中,只有 2 和 4 组成和为 6 的数字对,找到第 2 个和为 6 的数字对是不可能的。因此,数字 9 不能出现在 4 个角上的格子里。
七阶幻方如下:(唉,上面那种做图太累,后面的图就来自于互联网了。。)
只要按照这个方法,无论多少阶,只要是个奇数,都可以画得出来,至少一个!你可以奸诈一点,比 如说画好菱形后,1 的起始位置是可以换的,写的方向也是可以换的,但是最后出来的幻方本质上是 一样的。。 对于偶数呢,最小是 4 阶的,四阶的幻方老师也讲了一个解法,就是大对角线换,小对角线也换。步 骤如下: 先按顺序写出 1-16 的数在 4 阶幻方里面,如下:
这里的解法呢,就是把整个幻方分成 2×2 个 4×4 的 小块,按顺序填好 1-64 个数,然后每个 4×4 小块的对角线上的数不变,其余的数做中心对称。 再看看下面这个:
12 阶,分成 3×3 个 4×4 的小块,和之前一样, 按顺序填好数,然后每个 4×4 小块的对角线上的数不变,其余的数做中心对称。 虽然和我最开始的那种分法不一样,但是你仔细一想,其实是完全一样的,只是他的填色方案是固定 的一种模式而已。 还有一种说法是每个小块对角线上的数换成互补的那个数,其实本质还是一样嘛。 下面是一个双偶数的 matlab 程序,我填色方案用时是国际象棋棋盘那种黑白相间。 function a = hf_4m(n) flag = zeros(n/2,n/2); flag(1:2:n/2,1:2:n/2) = 1; flag(2:2:n/2,2:2:n/2) = 1; flag = [flag fliplr(flag);flipud(flag) flipud(fliplr(flag))]; a = reshape(1:n^2,n,n)'; a = a .* flag; a = reshape(a',1,n^2); blank_idx = find(a==0); number_left = (1:n^2) .* (a==0); number_left = fliplr(setdiff(number_left,0));
幻方的求解
三阶幻方的解法
第一种:杨辉法:九子斜排,上下对易,左右相更,四维挺出。
1
2
4
3
Baidu Nhomakorabea
57
68
9
294 753 618 第二种:九宫图也是幻方的别称,三阶幻方就是著名的洛书,他的排列是::“戴九履一,左三右七, 二四为肩,六八为足,五居中央(9 在上中,1 在下中。3 在左中,7 在右中,2 在左上,4 在右上,6 在左下,8 在右下) 第三种:罗伯法:最小的数据上行中央,依次向右上方斜填,上出框往下写,右出框往左填,排重便 在下格填,右上排重一个样 816 357 492 四阶幻方的解法 1、先把这 16 个数字按顺序从小到到排成一个 4 乘 4 的方阵 2、内外四个角对角上互补的数相易,(方阵分为两个正方形,外大内小,然后把大正方形的四个对角 上的数字对换,小正方形四个对角上的数字对换)即 (1,16)(4,13)互换 (6,11)(7,10)互换 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1 另:对于 n=4k 阶幻方,我们先把数字按顺序填写。写好后,按 4*4 把它划分成 k*k 个方阵。因为 n 是 4 的倍数,一定能用 4*4 的小方阵分割。然后把每个小方阵的对角线,象制作 4 阶幻方的方法一样, 对角线上的数字换成互补的数字,就构成幻方。 五阶幻方的解法:罗伯法:最小的数据上行中央,依次向右上方斜填,上出框往下写,右出框往左填, 排重便在下格填,右上排重一个样。 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9
双偶数解法:偶数阶下面先讲简单的双偶数解法,看了很多解法,但是最后发现了一个通解,网上看 到的大部分解法都是这个通解的特例。
首先呢,如下图所示,先把 n 阶幻方分成 4 个小块,对于左上角那个你任意的把一半放个填成灰色, 但是有一个约束条件,就是左上角这个小块中每一行每一列都要只有 n/4 个灰色的。然后呢,右上的 那个小块的填色方案就是左上填色方案的左右镜像对称,左下的就是左上天色方案的上下镜像对称, 自然,右下就是左上的中心对称了。如下图所示:
无论从上到下还是从左到右都是五排, 所以每排的五个数之和为(1+2+3+4+…+25)÷5=65, 因此,你可以验算一下是否每个和都是 65. 此法适合于一切奇阶幻方.)
数独游戏
数独,据说最先是在瑞典,后来到美国,然后到日本被发扬光大。这个游戏,进入了今年上海交大的自主招生试 题——最后一道大题就是数独题。
古人说,“学贵有疑。小疑则小进,大疑则大进”。在学习中,我们要注意归纳和演绎能力的培养, 总结一些规律,不但增加了学习的有效性和趣味性,对理解和掌握有关问题也很有益处。培育创新型 人才既是学校和老师的责任,也是我们学生要刻意磨练的目标。本文通过详解九宫格问题,得到了一 些有意义的结论和规律,而这些规律的获得使我们对九宫格问题也有了更加深入的认识。
后来我就对着 matlab 里面 magic 的源文件写出了这个 C++版本,只是为了巩固自己对四阶的理解罢 了。
然后下面整理一下一般的偶数阶幻方的解法,解法来源于互联网。
首先一般的偶数阶解法都是把偶数分成两种,4,8,12,16 这种 4m 的双偶数和 6,10,14 这种 4m+2 的单 偶数,一般的解法都是分开来两类的,包括 matlab 里面的 magic 函数,不过查了一下也有很多大牛研 究出了统一解法,更有大神把奇偶阶全部同意了,膜拜 ing。。。
上面的图片中,红色是在玩游戏前给出的数字,蓝色的数字就是后填的。 游戏的规则很简单,每一行填入 1—9 九个数字,每一列也填入 1—9 九个数字,但同时要满足每一个九宫格中也 包含 1—9 九个数字,也就是说每一个九宫格中也填入 1—9 九个数字。
此图的特别之处就是横行纵列加上两条对角线上的三个数字之和均为 15。 类似于这样的问题,也称之为幻方,像上面的九宫格,可称为 3 阶幻方(因每行,每列,两条对角线上数字个数 是 3),还有 4 阶、5 阶、6 阶等。此外还可分为奇阶幻方和偶阶幻方。九宫格就属于奇阶幻方。 下面是个五阶幻方。
然后呢,你把 1-n²这么多个数按顺序填 进白色的格子里去,灰色的部分要留着。如下面左图所示:
之后呢,把剩下的没填的数反过来填进 去,也就是从右下到左上的顺序,填完双偶数阶幻方就出来了。 现在我们来讨论一下这种方法,首先看我们原本的四阶幻方的解法,有没有发现其实和这种方法是一 个东西。 然后再看看双偶数阶的另一种解法,比如说下面这个 8 阶幻方:
同样道理,1,3,7 也不能出现在 4 个角上的格子里。
第 4 步,2,4,6,8 必须填在 4 个角上的格子里,并且保证对角线数字和为 15。
第 5 步,将 1,3,7,9 填入相应的格子里就完成了九宫格填数字任务,注意和为 15 的
条件。
完成了填九宫格的任务后,我们进一步考虑,如果上面九宫格内所有数字都加数字 1 会发生什么 呢?即可不可以用数字 2,3,4,5,6,7,8,9,10 填九宫格,得到每一行,每一列,每一对角线的 三个数字之和都相等的新九宫格呢。
相关文档
最新文档