n阶幻方(魔方)阵算法java实现
(2011-09-12 20:39:59)
标签:
杂谈 |
分类: 我的java |
幻方类:
public class Magic {
private int
n;
private
int[][] I;
private
int[][] J;
public
Magic(int n) {
this.n = n;
}
public
int[][] getMagic(){
int[][] M=null;
if(n<=2)return M;
if(n%2==1){
meshGrid();
M=new int[n][n];
for(int i=0;i<n;i++)
for(int j=0;j<n;j++){
int a=mod(I[i][j]+J[i][j]-(n+3)/2,n);
int b=mod(I[i][j]+2*J[i][j]-2,n);
M[i][j]=n*a+b+1;
}
}
else if(n%4==0){
meshGrid();
M=reshape();
for(int i=0;i<n;i++)
for(int j=0;j<n;j++){
int a=(int)Math.floor(mod(I[i][j],4)/2.0);
int b=(int)Math.floor(mod(J[i][j],4)/2.0);
if(a==b){