C语言代码如下: #include<stdio.h>intmain(){intn=11,sum=0;//确定要生成n阶幻方intarr[11][11]={0};//定义二维n数组,所有值为0,数组长度要和n相等//分三种情况,奇数幻方,单偶数幻方,双偶数幻方if(n%2!=0){//奇数幻方,罗伯法//性质:第一行最中间数为1,最中间数为(n^2+1)/2,和为n(n^2...
所谓单偶阶幻方就是当n不可以被4整除时的偶阶幻方,即4K+2阶幻方。如(n=6,10,14……)的幻方。 单偶数阶幻方最经典的填法是斯特拉兹法。填写的方法是: 以10阶幻方为例。这时,k=2。 (1)把魔方阵分为A,B,C,D四个象限,这样每一个象限肯定是奇数阶。用罗伯法,依次在A象限,D象限,B象限,C象限按奇数阶...
C生成奇数阶幻方矩阵 幻方(Magic Square)是一种将数字安排在正方形格子中,使每行、列和对角线上的数字和都相等的方法。 // 求取奇数阶幻方矩阵// 求取奇数阶幻方矩阵#include<stdio.h>#definenums 100inta[nums][nums];voidget_magicsquares(intn){if(n %2==0)return;//如果是偶数,终止函数inti,j; i...
//printf("data=%d,m=%d,k=%d\n ",data,m,k); p=m-1;//上 q=k+1;//右 if(p<0&&q<n&&q>=0){//上出框 //printf("qian shang chu: p=%d,q=%d\n",p,q); p=n-1;//下边放 //printf("hou shang chu: p=%d,q=%d\n",p,q); ...
二、实验问题描述幻方就是一个方阵,有着自己的规则和定义。幻方可分为奇阶幻方和偶阶幻方,同时偶阶幻方又可以分为双偶阶和单偶阶(所谓双偶阶就是指 N 能被 4 整除,单偶阶就是指能被 2 整除但不能被 4 整除) 。奇阶幻方比偶阶幻方简单一些(这次实验只讨论奇数幻方) 。幻方的规则就是它每一行和每一...
编写三阶幻方主要针对奇数阶,偶数阶则有不同规律。以三阶幻方为例,其规律如下:奇数阶幻方中,数1位于第一行的正中央(1行2列)。接着,数的移动遵循上一行下一列的规则。如果该位置已满,则移动到最底行的对应列。以此类推,重复操作直至完成幻方构建。具体步骤可归纳为:从数1开始,移动方向...
二、实验问题描述幻方就是一个方阵,有着自己的规则和定义。幻方可分为奇阶幻方和偶阶幻方,同时偶阶幻方又可以分为双偶阶和单偶阶(所谓双偶阶就是指n能被4整除,单偶阶就是指能被2整除但不能被4整除)。奇阶幻方比偶阶幻方简单一些(这次实验只讨论奇数幻方)。幻方的规则就是它每一行和每一列的和及两条...
奇数阶幻方有如下填法:(1) 将1放在第一行中间一列;(2) 从2开始直到n×n止各数依次按下列规则存放:当k(从2开始)填好后,若k的右上方空,则把k+1填在右上方,否则,把k+1填在k的下方;(3) 如果行列范围超出矩阵范围,则回绕 最左列视作在最右列的右方,把最底行视作在最顶行的上方...
二维数组:奇数阶魔方 幻方,有时又称魔方,由一组排放在正方形中的整数组成,其每行、每列以及两条对角线上的数之和均相等。通常幻方由从到的连续整数组成。 Siamese方法(Kraitchik 1942年,pp. 148-149)是构造奇数阶幻方的一种方法,说明如下: 1)把1放置在第一行的中间...
一、幻方按照阶数可分成了三类,即奇数阶幻方、双偶阶幻方、单偶阶幻方。 二、奇数阶幻方(劳伯法) 奇数阶幻方最经典的填法是罗伯法。填写的方法是: 把1(或最小的数)放在第一行正中;按以下规律排列剩下的(n×n-1)个数: (1)每一个数放在前一个数的右上一格; (2)如果这个数所要放的格已经超出了顶行...