算法设计与分析问题:3阶魔方阵.
来源:学生作业帮 编辑:拍题作业网作业帮 分类:数学作业 时间:2024/04/27 16:48:37
算法设计与分析问题:3阶魔方阵.
要求在一个N xN的矩阵中填入1到n2(n的二次方)的数字(n为奇数),如图所示3阶魔方阵
(1)证明:n阶魔方阵中每一行、每一列、每条对角线的累加和一定等于n(n2+1)/2;
(2)设计蛮力算法生成n阶魔方阵.还有其他更好的算法吗?
要求在一个N xN的矩阵中填入1到n2(n的二次方)的数字(n为奇数),如图所示3阶魔方阵
(1)证明:n阶魔方阵中每一行、每一列、每条对角线的累加和一定等于n(n2+1)/2;
(2)设计蛮力算法生成n阶魔方阵.还有其他更好的算法吗?
如果我们将1,2,……n2按某种规则依次填入到方阵中,得到的恰好是奇次魔方阵,这个规则可以描述如下:
(1)首先将1填在方阵第一行的中间,即(1,(n+1)/2)的位置;
(2)下一个数填在上一个数的主对角线的上方,若上一个数的位置是(i,j),下一个数应填在(i1,j1),其中i1=i-1、j1=j-1.
(3)若应填写的位置下标出界,则出界的值用n 来替代;即若i-1=0,则取i1=n;若j-1=0,则取j1=n.
(4)若应填的位置虽然没有出界,但是已经填有数据的话,则应填在上一个数的下面(行加1,列不变),即取i1=i+1,j1=j.
这样循环填数,直到把n*n个数全部填入方阵中,最后得到的是一个n阶魔方阵.
main( )
{int i,j,i1,j1,x,n,t,a[100][100];
print(“input an odd number:”);
input(n);
if (n mod 2=0) {print(“input error!”); return;}
for( i=1;i
(1)首先将1填在方阵第一行的中间,即(1,(n+1)/2)的位置;
(2)下一个数填在上一个数的主对角线的上方,若上一个数的位置是(i,j),下一个数应填在(i1,j1),其中i1=i-1、j1=j-1.
(3)若应填写的位置下标出界,则出界的值用n 来替代;即若i-1=0,则取i1=n;若j-1=0,则取j1=n.
(4)若应填的位置虽然没有出界,但是已经填有数据的话,则应填在上一个数的下面(行加1,列不变),即取i1=i+1,j1=j.
这样循环填数,直到把n*n个数全部填入方阵中,最后得到的是一个n阶魔方阵.
main( )
{int i,j,i1,j1,x,n,t,a[100][100];
print(“input an odd number:”);
input(n);
if (n mod 2=0) {print(“input error!”); return;}
for( i=1;i
算法设计与分析的任务时间表问题代码求解释
算法设计问题 百钱买百鸡
《算法分析与设计》 王红梅 的课后答案谁有?
我是学计算机的,我想知道是算法设计与分析难还是通信原理难些呢.
算法设计与分析 证明:=o(n^n) 写通俗点
猴子吃桃问题.设计算法解决
算法分析与设计题目 请求解0/1/2背包问题:有1个背包、其容量为C,有n种物品(每个物品种类i都自己的重量wi和价值v
数据结构与算法分析课程设计报告!关于最大团问题,求写最大团的报告书,别的不要!
算法与数据结构的问题,
杭电acm1005的算法设计,分析下周期
01背包问题的贪心K阶优化算法设计(物品不可拆分)
什么叫acm程序设计与算法分析