幻方和排列

休闲APL
尤金·麦克唐纳
1976年秋季


幻方和排列

APL帮助发现了一些有趣的幻方和排列之间的联系。本文讨论了其中的一些问题,并给出了一些需要解决的问题。

用于生成的APL函数奇阶幻方是众所周知的:基本算法出现在Sandra Pakin的APL/360参考手册由SRA出版,是雷·波利夫卡的功劳(我只见过迭代算法对于其他编程语言中的此函数):

毫秒r⊖r⌽m

哪里是形成的方阵通过(n,n)n*2 , 第页是的向量n个元素(⍳n)-⌈n÷2 . 例如,如果n个 , 然后

1 2 3 4 5 67 8 9

第页¯1 0 1 . 在应用第一个旋转之后,我们有

3 1 24 5 6 8 9 7

第二次旋转后

8 1 63 5 7 4 9 2

+/毫秒 ,+⌿毫秒+/1 1⍉毫秒+/1 1毫秒可用于验证行、列、,对角线和加起来都是一样的。

您可能希望验证一下,如果(f)是应用旋转的函数沿着方阵的二维以所示方式,然后f米是一个魔方,如果是一个奇怪的顺序行正规顺序整数的平方矩阵。然后注意f英尺米等于 ; 那个f f f m也是魔法;还有那个f f f f m等于 .

如果我们把断裂对角线的和相加(即。8 7 9 ,3 1 2 ,3 9 6 , 4 1 7), 我们得到的和与魔法和不同15 . 让我建议一个实验:尝试使用此算法生成其他奇阶幻方,看看破对角和是什么。问题:确定规则当所有对角线和都相同时。

有八种可能的变化行的正常顺序,对应于八个元素在正方形的对称性组中:

1 2 3   7 4 1   9 8 7   3 6 9 4 5 6   8 5 2   6 5 4   2 5 8 7 8 9   9 6 3   3 2 1   1 4 73 2 1   1 4 7   7 8 9   9 6 36 5 4   2 5 8   4 5 6   8 5 2 9 8 7   3 6 9   1 2 3   7 4 1

不管怎样,我们都会得到一个幻方我们从哪个方块开始。很容易生成本系列中的第一个。如何在APL中生成其他七个?如果你全部生成,然后对每个函数应用幻方函数,你最终会得到八个不同的小魔方:

8 1 6   4 3 8   2 9 4   6 7 23 5 7   9 5 1   7 5 3   1 5 94 9 2   2 7 6   6 1 8   8 3 46 1 8   8 3 4   4 9 2   2 7 67 5 3   1 5 9   3 5 7   9 5 12 9 4   6 7 2   8 1 6   4 3 8

其中的前四个有一个特别有趣的特性:他们的旅行是排列等于其降级:

(⍒,m)^.=,

例如,让毫秒1作为其中的第一个,

,毫秒18 1 6 3 5 7 4 9 2⍒,毫秒18 1 6 3 5 7 4 9 2

其他四个人拥有财产他们的旅行是排列的等于他们的双重的降级:

(米)^.=,

例如,让第一个矩阵在第二行毫秒5 ,

,毫秒56 1 8 7 5 3 2 9 4⍒,毫秒58 3 4 1 5 9 6 7 2⍒,ms56 1 8 7 5 3 2 9 4

问题出现了:它们之间有任何相关性吗自降级排列之间(sdp)还有魔术方块?也就是说,执行每个sdp的顺序编号*2产生一个魔方秩序n个 , 对于n个奇怪吗?相反,每一个奇阶幻方都会产生(可能在旋转和反射之后)到sdp?答案是否定的。

让我们讨论一下sdp的一般主题,第一。对于给定的排列长度,有多少个sdp?

让我们首先尝试构建一个sdp,长度的说法9 . 我们发现第一个元素不可能1 , 也不可能9 . 每一个都是矛盾的。我们不能把5作为第一个元素,要么,因为这会9作为第五个元素,表明59第个元素:另一个矛盾。(事实上,唯一可以定位的元素处于中心位置的是中心元素,因此我们必须5位于第五位。)这就留下了6可以使用的元素作为第一个元素:2 , ,4 ,6 ,7 8 . 假设我们选择6作为第一个元素。做出选择后,我们发现这迫使位置共有四种元素,如跟随:6就位1军队9就位6(由于元件就位1给出了最大的元件);9就位6军队4就位9(由于元件就位6给出了第六大元素的位置,也就是说,4); 4就位9军队1就位4 . 到目前为止,我们有:

6 _ _ 1 5 9 _ _ 4

剩余元素中2 , ,7 , 8 , 我们发现两者都不是2也不是8可以在第二位置使用,因为同样的原因1也不是9可以在第一个位置使用。因此,要么7可以在那里使用。如果我们选择作为第二个元素,我们再次发现四个元素的位置是强迫:就位2军队8就位 ;8就位军队7就位8 ; 7就位8军队2就位7 :

6 3 8 1 5 9 2 7 4

因此,我们创建了一个sdp。当我们进行测试时是否可以做成一个魔方,我们发现这根本不是魔法:

6 3 8 1 5 9 2 7 4

我们还有一条线索来列举sdp的对于给定订单:首先,因为一次选择四个元素(除了可能的中心元件),只有sdp才可能用于订单4×n1+4×n . 因为我们可以随时选择下一个元素比剩下的空缺职位数量少两个方面,对于给定的n个 , sdp的数量是×/?2+4×⍳n 的前几个值的制表n个我们得到:

n个  ×/?2+4×n  排列
长度的
0      1    
1   4    5    
2 12   8    9    
 120   12  13    
4 1680年  16  17    
5 30240   20  21    
6 665280  24  25    

本系列中的数字与808系列在不可或缺的卷中整数序列手册, N.J.A.Sloane(纽约学术出版社,1973年)。斯隆将其描述为厄米特多项式的系数,并给出了参考MTAC 3号机组第168页,1948年。这篇文章与逼近多项式有关,与排列无关。

获取值的另一个公式在同一系列中×/n+⍳n . 因此,它应该是可能的从另一个公式推导出一个公式。作为一个问题,尝试在APL中对此事实进行证明。您希望显示以下示例,和他们一样,给出了相同的结果:

×/2           ×/2×/2 6         ×/3 4×/2 6 10×/4 5 6×/2 6 10 14   ×/5 6 7 8

顺序9的十二个sdp是:

*2 9 4 7 5 3 6 1 8   *8 1 6 3 5 7 4 9 22 9 6 3 5 7 4 1 8    8 1 4 7 5 3 6 9 23 4 9 8 5 2 1 6 7    7 6 1 2 5 8 9 4 33 6 9 2 5 8 1 4 7    7 4 1 8 5 2 9 6 3*4 3 8 9 5 1 2 7 6   *6 7 2 1 5 9 8 3 44 7 2 9 5 1 8 3 6    6 3 8 1 5 9 2 7 4

形成幻方的sdp第3级标有星号。左右列中的sdp是彼此的逆转。确实,如果是sdp,那么就是这样⌽p . 左右列是互补的,如果是左栏中的sdp第页是右列中对应的sdp,的元素l+r(升+升)(即,l+⌽l)都是相同的。

构造的奇阶幻方以上述方式命名在Simon de La Loubère之后,1687年,他把这座建筑从暹罗带到了法国。

自双降级排列(sddp)比那些自我降级的更常见。任何sddp都必须具有降级,降级也是sddp。那就是,如果与相同第页 , 然后,让q个平等的⍒页 我们有q个等于第页 , 因此q个也等于“q” . 特别是,它应该是明确的任何sdp都是sddp(因为如果等于⍒页 然后也⍒页等于第页 , 因此等于第页).

如果是奇数的sddp长度n个 , 唯一可以位于中心位置的元素是中心元素。如果置换的反转相等,这是真的如果降级,那么它也是sddp:也就是说,如果(⌽p)^.=⍒ .

要枚举sddp,注意,具有反转的排列与降级相等也是一种排列其反转是置换的补充(即元素属于p+⌽p等于1+⍴p). 此外,如果置换长度为奇数,中心元素必须具有中心值。例如,如果⍴p5 , 然后第[3]页必须是使置换成为sddp。如果我们允许是枚举的函数订单的sddpk个 , 很明显g 1+2×n与相同g 2×n . 如果我们选择作为我们的第一个元素 , 那么我们的最后一个元素必须是1+k-a . 这就留下了k-2号机组选择下一个元素的方法,哪种选择强制选择元素在倒数第二个位置,依此类推。如果我们有一个长度排列2×n , 2×n我们可以选择第一个元素的方法,这迫使选择最后一个元素。我们只剩下g³2+2×n方式选择下一个元素。因此g 2×n等于(2×n)×g³2+2×n . 由此,我们得出结论:g 1+2×n等于g 2×n哪个是相等的(!n)×2*n . 的前几个值希腊如下表所示:

n个  希腊  排列
长度的
0      0    1    
1   2    3    
2   4    5    
 48   6月7日
4 384   8    9    
5 3840   10  11    
6 46080   12  13    
7 645120  14  15    

系列1 2 8 18中的数字。。。被称为双重阶乘,系列是742号在斯隆。

双八阶幻方(也就是说,边的长度是4的倍数)可以由另一种算法形成,不像奇阶正方形那样简单。杜勒雕刻中著名的魔术广场梅伦科利亚一世由标准技术之一形成用于生成双重幻方。这个方块是:

16  3  2 135 10 11  89  6  7 124 15 14  1

最下面一行的中心正方形给出雕刻年份。另一个问题是,尝试编写一个APL函数来生成这样的方块(即订单4、8、12等)这些方块的碎片是自我降级。然而,他们有四种方式重新认识自己-向上的分级。如果我们称杜勒的魔法广场d日 然后

(⍋,d)^.=,d、。

自我升级的排列(sup's)已被广泛研究。缪尔(行列式理论论著纽约州多佛,1960年)给他们打电话自共轭排列. 根据Knuth(排序和搜索,Addison-Wesley,1973年,第48页)它们首先由H.A.Rothe研究,使用术语自反,在1800年。Knuth给他们打电话对合.

提供了sup的数量根据罗特公式:第1天1 ,第2天2 , t n(吨)(t n-1)+(n-1)×t n-2对于n个大于2 . 的前几个值t n(吨)是:

n t n号1        1 2        23        44       105       266       767 2328      7649     262010     949611    35696

公式可以通过观察得出那个t n-1给出了sup的数量订单的n个开始于1 t n-2订购的服务n个从剩下的每一个开始n-1个元素,这个词从哪里来(n-1)×t n-2 . 该系列是469号在斯隆。

Edouard Lucas,在他的Nombres理论, 巴黎,高蒂尔-维拉斯与菲尔斯,1891年,置换矩阵问题的研究对某些旋转和换位是不变的。这个主题与问题密切相关sdp、sddp和sup。卢卡斯的书今天很值得一读。

第三种魔术方块是这是唯一的,即顺序为6、10、14等。(没有2阶幻方)。生成此类幻方的算法比其他两个更难表达,并留给读者一个问题。我的同事霍华德·史密斯写了一个函数用于生成所有阶的幻方但大约12行中有2行。

以下是与sup主题相关的结果:如果我们取一个有序的真值表n个(例如,在0-origin中由t吨(n⍴2)⍳2*n), 按sup排列其行长度的n个 , 并在基础上评估结果2 , 我们得到一个置换q个这也是一道美味。例如:

t吨(4⍴2)⊤⍳2*4t吨0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 10 0 0 0 1 1 1 1 0 0 0 0 1 1 1 10 0 1 1 0 0 1 1 0 0 1 1 0 0 1 10 1 0 1 0 1 0 1 0 1 0 1 0 1 0 12 3 0 1⍋p2 3 0 1t[p;]0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 10 1 0 1 0 1 0 1 0 1 0 1 0 1 0 10 0 0 0 0 0 0 0 1 1 1 1 1 1 1 10 0 0 0 1 1 1 1 0 0 0 0 1 1 1 12½t[p;]0 4 8 12 1 5 9 13 2 6 10 14 3 7 11 15⍋2½t[p;]0 4 8 12 1 5 9 13 2 6 10 14 3 7 11 15

这提供了一种使用sup的方法秩序n个生成超订单2*n个(此结果的基本部分被我的同事乔伊·塔特尔发现)。

一些其他问题:

证明一下,对于排列 ,等于第页 .

证明一下,对于排列等于第页(本卡德的观察,1968年)。

创建一个函数以生成奇阶幻方它使用矩阵乘积而不是旋转。
 


首次出现于APL Quote-Quad,第7卷,第3期,1976年秋季。

创建时间:2009-07-19 17:00
更新时间:2013-09-22 15:45