- 5
- 0
- 约 11页
- 2017-01-11 发布于天津
- 举报
幻 方 算 法
首先,奇数的幻方,第一行中间放1,然后依次2、3、4一直往右上填,越界则反向,如果该位置有了数字,则排在前一个数的下面。原则:非右上则下其次,4的倍数的的幻方。设N%4等于0,则以每个4*4画对角,不在对角线上的数字与相对应数字对换。比如8*8的,(0,1)与(7,6)对换,类推。原则:横竖下标对N比余,相等或相加等于3则忽略,不做对换最后,最复杂的最后一种情况,单偶数的幻方。我找了资料,但是没有完全好用的,总有缺陷概念:N=4m+2方法1:ACDB按上图将其分为4个部分,分别填入1-N*N/4组成的奇数幻方,N*N/4+1-N*N/2组成的奇数幻方,N*N/2+1-N*N/4*3组成的奇数幻方,N*N/4*3-N*N组成的奇数幻方将AD中m列互换。不是镜面互换,而是平移。将BC中m-1列互换,同上。方法2:LUX法L U X41 14 1423 23 32先做一个N/2的奇数幻方,然后把这个幻方的每个数x替换成一个田字的四个数(x-1)*4+1——x*4这四个数的排列顺序有3种,前m+1行的按L排列,后m-1行的按X排列,中间一行中间一列按L排列,其余的按U排列。下面是我写的JAVA实现类,2种单偶数我都实现了(第一种方法的实现被我注释掉了),还有一个监测的方法,仅供参考。public class HuanClass {private int N;private int SUM;private int MAX;private int[][] RE;public HuanClass(int val) throws Exception{N=val;MAX=N*N;if(MAX%2==1)SUM=(MAX+1)/2*N;else SUM=(MAX+1)*N/2;RE=new int[N][N];if(N3)throw new Exception(shit);else if(N%2==1)RE=CountOdd(N);else if(N%4==0)CountFour();elseCountEven();}private int[][] CountOdd(int n){int[][] IRE=new int[n][n];int i=0;int j=n/2;int tmp=1;while(true){if(j=n)j=0;if(i0)i=n-1;if(IRE[i][j]==0){IRE[i--][j++]=tmp++;}else{i+=2;j--;if(j0)j=n-1;if(i=n)i=i%n;if(IRE[i][j]==0)IRE[i--][j++]=tmp++;else break;}}return IRE;}private void CountFour(){int fillCount=1;for(int i=0;iN;i++){for(int j=0;jN;j++){RE[i][j]=fillCount;fillCount++;}}int tmp;for(int i=0;iN;i++){for(int j=0;jN/2;j++){if(i%4!=j%4(j%4+i%4)!=3){tmp=RE[i][j];RE[i][j]=RE[N-i-1][N-j-1];RE[N-i-1][N-j-1]=tmp;}}}}/*private void CountEven(){int halfN=N/2;int[][] tmpIArr=CountOdd(halfN);for(int i=0;ihalfN;i++){for(int j=0;jhalfN;j++){RE[i][j]=tmpIArr[i][j];RE[i+halfN][j]=tmpIArr[i][j]+halfN*halfN*3;RE[i][j+halfN]=tmpIArr[i][j]+halfN*halfN*2;RE[i+halfN][j+halfN]=tmpIArr[i][j]+halfN*halfN;}}int m=(halfN-1)/2;int tmp;for(int j=0;jm;j++){for(int i=0;ihalfN;i++){tmp=RE[i][j];RE[i][j]=RE[i+halfN][j];RE[i+halfN][j]=tmp;if(jm-1){tmp=RE[i][j+halfN];RE[i][j+halfN]=RE[i+halfN][j+halfN];RE[i+halfN][j+halfN]=tmp;}}}}*/private v
最近下载
- (正式版)D-L∕T 802.9-2018 电力电缆用导管技术条件 第9部分高强度聚氯乙烯塑料电缆导管.docx VIP
- IATF16949-2025汽车产品质量管理体系导入推行计划.docx VIP
- 富士施乐DocuPrintCP115W说明书CP116w使用手册.pdf VIP
- 2025年郑州电子信息职业技术学院单招职业适应性测试题库及答案1套.docx VIP
- GB50148-2010 电气装置安装工程电力变压器油浸电抗器、互感器施工及验收规范.pdf VIP
- 内科护理学02呼吸系统疾病患者的护理PPT.ppt VIP
- 通风能力核定.pptx VIP
- 网络新闻专题策划和制作.pptx
- (2026春新版本)人教版八年级数学下册全册PPT课件.pptx
- 早发性卵巢功能不全病因及治疗探讨课件.pptx VIP
原创力文档

文档评论(0)