在emathgroup.github上的六阶模幻方算是一篇blog吧。
我想blog应该是对论坛帖子的整理和提高,建议不要拘于忠实复制。可以调整顺序、有所取舍和丰富。
以这个6阶模幻方为例。
1、我们一开始是没有任何实际数据的,但是后来有了一个很多孔洞的实例,我觉得可以调整顺序,从这个多孔实例开始介绍模幻方的定义,然后提出缩减孔洞的问题。
2、编程中的bug及其结果可以省略掉。
3、跟进论坛帖子的后继变化。后继内容还有一些。在完成所有洞组的去重后,我会逐步介绍模幻方的一些理论问题。包括模空间上的方向概念和定理,模幻方的约束选择与对称性,模幻方坍塌的概念和定理、模幻方的完全坍塌定理等。其中有几个未决问题,未必有多难,只是因为搁置多年没有继续探究。
关于去重方法的说明
mathe的数据是按图1放置的,图2是一个实例。第二主序数,mathe貌似是取的左下角 a_(5, 0).注意到导出律一:a_(3,2)+a_(5,0)+a_(1, 4)=0
所以以a_(5, 0)> a_(1, 4)为判据可以去掉3个镜像重复(以六边形长对角线为轴线,把50分别镜像到3个14)和3个旋转重复(60°,180°,300°,分别把50旋转到3个14)。
注意到导出律二:a_(0, 2)+a(0, 5)+a_(3, 5)+a_(3,2)=0,
所以再以 a_(3, 5) < a_(0, 5) < a_(0, 2) 为判据可以去掉剩下的3个镜像重复和2个旋转重复(120°,240°)。
这两个判据先后使用,可以滤掉11/12的重复。
左图有细圈帮助找坐标。
{{-4, 0, 4}, 240}去重,15个本原解
先按上述方法去掉镜像和旋转重复,得20解审核这20解的取反重复,发现3、6、7、8、10、11、12、15、16、20 这 10 个的相反数对是平移对称的,因此是取反自对称的。
1 与 9,2 与 14, 4 与 18, 5 与17,13与19 是取反重复的。
4与18, 5与17 ,13与19的相反数对关系很诡异,即我前面所称的分块对称,其实这四个貌似也有某种取反自对称。
澄清一个错误:不存在真正的取反镜像对称
前面说的正负镜像对称,只是在某个方向的6行都是镜像对称,但我们发现整体并不是镜像对称。因为镜像对称的话,镜像线总是要通过格点,而通过镜像线的格点正负对称的话只能取0.
而且镜像线会通过3个格点,会使得总格数为奇数,也与36相矛盾。
以下是所谓的镜像对称二例,{-16,0,16}洞组的。
去重汇总
一、6624个对称数组去重结果汇总:洞组 频数 去旋转和镜像 取反平移对称取反中心对称 取反对称对本原解数
{-2,0,2}180 15 15 0 0 15
{-4,0,4}240 20 10 0 5对 15
{-6,0,6} 972 81 37 6 19对 62
{-8,0,8} 54045 7 0 19对26
{-10,0,10} 768 64 14 0 25对39
{-12,0,12} 888 74 49 1 12对 62
{-14,0,14} 312 26 20 2 2对 24
{-16,0,16} 780 65 29 0 18对 47
{-18,0,18} 1944 162 87 3 36对 126
合计 6624 552 268 12 136对 452
二、非对称数组,7个本原解,
所以共是459个本原解。其中取反自对称的为280个.
中心对称12图
mathe 给的3孔数组幻方中,第1个就是中心对称幻方(见27楼和34楼),所以最初以为会有很多中心对称幻方的。没想到最终只有12个。不多则可以全列出来了。
不对称的种种(一)
对称幻方虽然多,模式就那两种。不对称的可以想像必是各种各样了。如何表征、识别各种不对称呢?为了使用程序处理,我们找的是相反数对的中点。
设#是幻方 x 中的一个数,通过计算Position(x,#)+Psition(x,-#)(mod 6)搜索生成中点表.
然后累计各中点被搜到的次数,形成权数表。显然权数之和为18.
排序后的权数表就成为幻方相反数对的分布特征。
两个不同对称分布的幻方,权数表可能不一样,而两个不同权数表的幻方,肯定有不同的对称分布。
例如:中心对称幻方的权数表为{18}, 平移对称幻方的权数表为{2, 2, 2, 2, 2, 2, 2, 2, 2}.
注意我们计算中点坐标时没有除以2,而模仍然取的是6。原因如下:
如34#所示,由于周期性,每对相反数实际上有4个中点,这4个中点扩展铺开形成的网格周期为3。
因此如果中点坐标不除以2,则把这四个中点的权数合并(视为同一个)时需要取模6.
以下是M10程序生成的去掉旋转和镜像重复和平移对称后的282个本原解的权数表的频数。
我们看到有3个权数表的频数为2,表明按这种对称分布的幻方各只有一对(取反重复)。
权数表最短的{18},显然就是中心对称的了。
权数表为{6,6,6}的就是所谓“镜像对称”。
权数表为6个2并6个1的频数最大,达112,表明这是一种典型分布,虽不如中心对称和平移对称简单,应该也是一种很有规律的分布。
权数表为9个2的与平移对称的权数表一样,但显然两者不同。说明权数表有丢失信息,可能合并了不同的分布细类。
中点权数表的合并横放版
不对称的种种(二)
既然中点权数表不能完全区分幻方相反数偶的分布,我们再寻找一种表征:向量表。# 是幻方 x 中的一个数,相反数偶的向量= Position(x, #)-Position(x, -#)(mod 6, -2)
注:(mod 6, -2)表示取模6的绝对值最小剩余,即剩余系取 {-2, -1, 0, 1, 2, 3).
统计向量权重时,方向相反的等长向量合并计权,然后将所得权重除以2。
去除旋转和镜像对称后的552个幻方的相反数偶向量表统计频数如下:
显然,{向量, 权重} 表最短的{{3, 0}, 18}即平移对称幻方,它的18个相反数偶向量均相同。
程序计算结果中,包括{{3, 0}, 18} 和 {{3, 3}, 18}两种形式,实为同一种分布,旋转120°而已。
程序并不排除{{0, 3}, 18}, 但却没有发现,那就是竟然在旋转、镜像去重中都滤掉了。
那个频数为12的{向量, 权重} 表,即属中心对称幻方。
不对称的种种(三)
从中点权重表与相反数偶向量表的频数并不能一一对应。已经验证的一一对应关系有三项:
1、平移对称
2、中心对称
3、频数为112者,说明这种不再细分了。
剩下的向量表有一个频数为72,超过了剩下的中点权重表中的最大频数。可见向量表也不能完全区分相反数偶的分布。
也许把两都交叉起来,就比较确定了。