社区
数据结构与算法
帖子详情
谁有好办法找出所有四阶自然数幻方啊!
smdesker
2003-12-21 12:33:08
谁有好办法找出所有四阶自然数幻方啊!还有,四阶的到底有什么个有人知道吧。。。急啊。。。
...全文
51
14
打赏
收藏
谁有好办法找出所有四阶自然数幻方啊!
谁有好办法找出所有四阶自然数幻方啊!还有,四阶的到底有什么个有人知道吧。。。急啊。。。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
smdesker
2003-12-27
打赏
举报
回复
找到yaos以前的贴子。。呵呵谢了。
/*我来贴一个我求4阶幻方总数的程序,运行结果7040*/
/*速度很快,用时不到1s*/
/*还有很大的优化余地*/
#include <stdio.h>
int p[100][4],l=0,t=0;
int q[4],p4[30][4];
long total=0;
int board[4][4];
unsigned long s[100];
void finalJudge()
{
int i,j,k,m,x,y;
for (i=0;i<24;i++)
{
for (j=0;j<24;j++)
{
for (k=0,x=0,y=0;k<4;k++)
{
x+=board[p4[i][k]][p4[j][k]];
y+=board[p4[i][3-k]][p4[j][k]];
}
if (x==34 && y==34)
{
total++;
for (k=0;k<4;k++,printf("\n"))
for (m=0;m<4;m++)
printf("%2d ",board[p4[i][k]][p4[j][m]]);
printf("\n");
}
}
}
}
void construct()
{
int i,j,k,m,x[4];
for (i=0;i<24;i++)
{
for (j=0;j<24;j++)
{
for (k=0;k<4;k++)
{
x[k]=34-p[q[0]][k]-p[q[1]][p4[i][k]]-p[q[2]][p4[j][k]];
board[3][k]=x[k];
if (x[k]<1 || x[k]>16 || !((1l<<(x[k]-1)) & s[q[3]])) break;
for (m=0;m<k;m++)
if (x[m]==x[k]) break;
if (m<k) break;
}
if (k==4)
{
for (k=0;k<4;k++)
board[0][k]=p[q[0]][k];
for (k=0;k<4;k++)
board[1][k]=p[q[1]][p4[i][k]];
for (k=0;k<4;k++)
board[2][k]=p[q[2]][p4[j][k]];
finalJudge();
}
}
}
}
void make(int b,int deep)
{
int i,j,sum;
if (deep>=4)
{
for (j=0,sum=0;j<4;j++)
sum+=(p[l+1][j]=p[l][j]);
if (sum==34)
{
for (j=0,s[l]=0;j<4;j++)
s[l]+=1l<<(p[l][j]-1);
l++;
}
return;
}
for (i=b;i<=16;i++)
{
p[l][deep]=i;
make(i+1,deep+1);
}
}
void makeP44(int deep){
int i,j,flag;
if (deep>=4)
{
for (j=0;j<4;j++)
p4[t+1][j]=p4[t][j];
t++;
return;
}
for (i=0;i<4;i++)
{
p4[t][deep]=i;
flag=1;
for (j=0;j<deep;j++)
if (p4[t][j]==i) flag=0;
if (flag) makeP44(deep+1);
}
}
void solve(int b,int deep)
{
int i,j,flag;
if (deep>=4)
{
construct();
return;
}
for (i=b;i<l;i++)
{
q[deep]=i;
flag=1;
for (j=0;j<deep;j++)
if (s[q[j]] & s[i]) flag=0;
if (flag) solve(i+1,deep+1);
}
}
main(){
/*freopen("1.txt","w",stdout);*/
make(1,0);
makeP44(0);
solve(0,0);
printf("total=%ld\n",total);
}
ilao
2003-12-23
打赏
举报
回复
好多E文!
呵呵
Linevan
2003-12-22
打赏
举报
回复
http://hades.ph.tn.tudelft.nl/Internal/PHServices/Documentation/MathWorld/math/math/m/m029.htm
有好的方法!
ZhangYv
2003-12-22
打赏
举报
回复
精华区有
ilao
2003-12-22
打赏
举报
回复
偶数的
的我也说不清楚
ilao
2003-12-22
打赏
举报
回复
奇数阶的是1在第一行中间
后2在最后一行对角向上排的
到右边后转下
下有数就转左
8 1 6
3 5 7
4 9 2
zalyer
2003-12-22
打赏
举报
回复
你去搜索一下一个叫"龙怪"的网站是一个台湾人搞的,就是对方阵的研究,有很多算法和奇妙的方阵.
yaos
2003-12-22
打赏
举报
回复
还要做一个纪录被使用的数字的模版,每组4个数字也纪录,用二进制与 很容易判断没有使用的数字
yaos
2003-12-22
打赏
举报
回复
比如:
(1,1)+(1,2)+(2,1)+(2,2) = (3,3)+(3,4)+(4,3)+(4,4)
等等
yaos
2003-12-22
打赏
举报
回复
880个
我在386上曾经作过,现在程序不知道扔到什么地方去了。 :)
很快的。不到10分钟。386sx25
现在的计算机,就更快了。
原理是:找到所有的4个数字组合等于(1+16)*16/2/4 = 34,一共1000多,然后
填出前两行,后边的用排除法,很容易填的
因为4阶的规律性太强了,要做做5阶的,很难。
smdesker
2003-12-21
打赏
举报
回复
大哥,我说是所有的啊。。。如何找出来才好。一二个的我多的是,我找了几千了。
还有谁知道总数是多少个啊。。。。可以再加分的。
ilao
2003-12-21
打赏
举报
回复
横向相加为15
纵向相加为15
对角相加为15
ilao
2003-12-21
打赏
举报
回复
四阶自然数幻方
为4*4啦
我写个3*3的
6 1 8
7 5 3
2 9 4
横纵向对角联合相加为15
ilao
2003-12-21
打赏
举报
回复
1 2 3 ............n*n
横纵向对角联合相加为
ns=n*n(n*n+1)/2
所以S=n(n*n+1)/2
这为阶
奇阶
幻方
的算术构造
题记 这是到目前为止,我所发现的最简奇阶
幻方
构造公式。为什么凭一条简洁的初等数学通项公式,就能填充任意奇阶
幻方
中的所有数字,且满足
幻方
的所有要求?这样看似无甚理由的上下、左右连加或连减,就不会出现重复数字或掉了一个数字? ——求质疑! 本法构造的
幻方
,先根据一条通项公式,求得坐标轴上的1至n²数列中的部分数后,再依据本法的构建规律,便可填充该
幻方
其余所有的数字。 先建立两两垂直的两对坐标B、D轴与A、C轴(图一,坐标上的点,用格子代替,以便填数), 通过如下坐标轴通项公式 Nₘ=n₀±[Jm+2m(m-1)
《软件构造》JAVA编程问题:
幻方
问题(Magic Square)部分解法浅析
最近在《软件构造》课程实验中遇到了
幻方
问题,写一篇博客简单解析一下用JAVA编程解决
幻方
问题的几种方法。 目录
幻方
简介
幻方
问题求解
幻方
的判定问题 数据读入部分 数据检测部分
幻方
的构造问题 罗伯法生成奇阶
幻方
对称交换法生成双偶
幻方
幻方
简介 首先简单介绍一下
幻方
的概念,
幻方
分为完全
幻方
,乘
幻方
,高次
幻方
和反
幻方
等很多种,而我们平时所说的n阶
幻方
都是指一次n阶
幻方
,在这篇文章中,我们介绍的
幻方
问题也都是关于一次n阶
幻方
的。一次n阶
幻方
是一个n*n的数字方阵,一般称为n阶
幻方
,其.
java实现
幻方
构造
作者:刘亮
幻方
(MagicSquare)是一种将数字安排在正方形格子中,使每行、列和对角线上的数字和都相等的方法。
幻方
也是一种中国传统游戏。旧时在官府、学堂多见。它是将从一到若干个数的
自然数
排成纵横各为若干个数的正方形,使在同一行、同一列和同一对角线上的几个数的和都相等。 三阶
幻方
本篇主聊高阶
幻方
构造方法的java实现 数据结构:以二维数组存放数字 例:上面...
幻方
的填法
幻方
简易填法
C语言之数组及其应用
幻方
()是一种将数字安排在正方形格子中,使每行、列和对角线上的数字和都相等的方法。
幻方
也是一种中国传统游戏。旧时在官府、学堂多见。它是将从一到若干个连续的
自然数
排成纵横各为若干个数的正方形,使在同一行、同一列和同一对角线上的几个数的和都相等。例如有如下表所示的一个三阶
幻方
,幻和为15。492357816本关任务:编写程序判定N×N(规定N为奇数,且N
数据结构与算法
33,008
社区成员
35,326
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章