六阶幻方的数量,计算为旋转和反射
nms6.txt文件 17 753 889 197 660 635 632
Y.Ohishi,日语,随机抽样估计六阶幻方解的个数,Sugei Puzzle No.177,1992年4月 K.Pinn和C.Wieczerkowski,平行回火蒙特卡洛的幻方数,国际现代物理杂志C,1998年4月9日。 A.Kitajima和M.Kikuchi,《数量众多但罕见:魔方探索》,PROS ONE 10(5)e01250622015年5月14日。
更正历史记录
2023.09.07修正
2024.02.17修正
子集和小计
-
(已知小计中有3项不正确,但故意不更正。)
分项合计列表 (234MB字节.gz) (已知18个子目标不正确,但故意保持未纠正。)
策略和代码
在Nvidia GeForce RTX-4090上以3.8G计数/秒(91G幻方/秒)的典型速度运行,适用于订单6。 假设采用Pascal架构(sm_60)或更新版本的Nvidia GPU。 编译和链接: nvcc-O3-arch=sm_60-maxrregcount=40-W没有不推荐使用的声明ms.cu-lcrypto 如果您不需要md5校验和,请添加 -编号MD5 然后放下 -Wno-deprecated-declarations无需申报 和 -lcrypto(加密) .
对于小于6的订单,请通过编译器选项指定订单 -DN(公称直径)= 秩序 . 可执行文件采用0、2或4个参数。 第一个和第三个参数只是占位符。 ./a.out(输出) 计算所有幻方 ./a.out(输出) 虚拟代表magic_series_in_hex 计算代表幻数序列等于给定十六进制数的幻方数。 ./a.out(输出) dummy1代表_magic_series_in_hex dummy2第二个_最大_magic_series_in _hex 计算其代表幻数序列和平行于代表的第二幻数序列的幻数正方形。 该代码不检查用户提供的参数的有效性。 无效参数将导致错误答案或运行时错误。
该代码于2023.11.28年更正。 发现初始枚举中使用的代码包含与GPU线程同步相关的错误。 在第二次枚举中使用了代码的修正版本。 未发现此错误导致的错误结果。
编译和链接: gcc-O3-DNTH= 线程数 ms.c-lpthread-lcrypto 选项 -编号MD5 和 -直径= 秩序 具有与Cuda代码中相同的效果。 比CUDA代码慢得多,但更容易阅读。
半幻方
5.A.Ripatti,关于6阶半幻方的数量,arXiv:1807.029832018年7月。