社区
Java SE
帖子详情
魔方
xiangdeweiwangfengg
2007-06-06 10:07:27
哪个兄弟可以用数组写个魔方的代码呀,我想了很就都想不出来
显示结果:
8 1 6
3 5 7
4 9 2
...全文
236
3
打赏
收藏
魔方
哪个兄弟可以用数组写个魔方的代码呀,我想了很就都想不出来 显示结果: 8 1 6 3 5 7 4 9 2
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yck2006
2007-06-09
打赏
举报
回复
以前网上看到过的一个。。
如果您会解奇数魔术方阵,要解这种方阵也就不难理解,首先我们令n=2(2m+1),并将整个方阵看作是数个奇数方阵的组合,如下所示:
A B
C D
首先依序将A、B、C、D四个位置,依奇数方阵的规则填入数字,填完之後,方阵中各行的和就相同了,但列与对角线则否,此时必须在A-D与C- B之间,作一些对应的调换,规则如下:
将A中每一列(中间列除外)的头m个元素,与D中对应位置的元素调换。
将A的中央列、中央那一格向左取m格,并与D中对应位置对调
将C中每一列的倒数m-1个元素,与B中对应的元素对调
public class Matrix {
public static int[][] magic22mp1(int n) {
int[][] square = new int[n][n];
magic_o(square, n/2);
exchange(square, n);
return square;
}
private static void magic_o(int[][] square, int n) {
int row = 0;
int column = n / 2;
for(int count = 1; count <= n*n; count++) {
square[row][column] = count; // 填A
square[row+n][column+n] = count + n*n; // 填B
square[row][column+n] = count + 2*n*n; // 填C
square[row+n][column] = count + 3*n*n; // 填D
if(count % n == 0)
row++;
else {
row = (row == 0) ? n - 1 : row - 1 ;
column = (column == n-1) ? 0 : column + 1;
}
}
}
private static void exchange(int[][] x, int n) {
int i, j;
int m = n / 4;
int m1 = m - 1;
for(i = 0; i < n/2; i++) {
if(i != m) {
for(j = 0; j < m; j++) // 处理规则 1
swap(x, i, j, n/2+i, j);
for(j = 0; j < m1; j++) // 处理规则 2
swap(x, i, n-1-j, n/2+i, n-1-j);
}
else { // 处理规则 3
for(j = 1; j <= m; j++)
swap(x, m, j, n/2+m, j);
for(j = 0; j < m1; j++)
swap(x, m, n-1-j, n/2+m, n-1-j);
}
}
}
private static void swap(int[][] number,
int i, int j, int k, int l) {
int t;
t = number[i][j];
number[i][j] = number[k][l];
number[k][l] = t;
}
public static void main(String[] args) {
int[][] magic = Matrix.magic22mp1(6);
for(int k = 0; k < magic.length; k++) {
for(int l = 0; l < magic[0].length; l++) {
System.out.print(magic[k][l] + " ");
}
System.out.println();
}
}
}
xiangdeweiwangfengg
2007-06-09
打赏
举报
回复
顶
ddllcc
2007-06-08
打赏
举报
回复
我以前用C语言写了一个,不知能否给你带来提示。如需要再给你发吧。
魔方
机器人大赛——
魔方
步骤转换算法
本文深入探讨了
魔方
机器人的算法转换过程,从
魔方
表示方法到步骤转换,再到具体的机械手动作映射,详细解释了如何将CubeExplore软件求解的
魔方
算法转化为机器人可执行的机械步骤。涉及深度优先遍历算法的应用,以及如何优化计算过程。
【Unity3D】
魔方
本文介绍了使用Unity3D实现2~10阶
魔方
的渲染、整体和局部旋转控制、撤销与逆撤销、动画效果以及多平台兼容性。用户可以通过滚动、拖动等方式交互,支持
魔方
打乱、公式输入等功能,并有详细的渲染原理和坐标轴检测机制解析。
二阶
魔方
、六阶
魔方
、七阶
魔方
本文详细介绍了二阶至七阶
魔方
的复原方法,包括二阶
魔方
的层先法、定位技巧及盲拧公式,六阶
魔方
的中心区复原与侧边区组装策略,以及七阶
魔方
的中心区复原方法。适合各阶段
魔方
爱好者学习。
玩转
魔方
、用群论玩转
魔方
该博客围绕
魔方
展开,包含四阶、三阶
魔方
的入门教学,介绍了
魔方
转换机、降群法等多种玩法和技巧。还从计算机科学角度引入群论,探讨如何用群论提升算法、还原
魔方
,同时分享了
魔方
学习资源和数学相关知识。
三阶空心
魔方
、三阶百搭
魔方
、唯棱
魔方
本文分析了三阶空心
魔方
、三阶百搭
魔方
和唯棱
魔方
三种变体的结构特点与复原方法。通过角块定色实现面还原,探讨了无中心块情况下颜色定位的逻辑基础,并揭示其与标准三阶
魔方
的操作映射关系。
Java SE
62,622
社区成员
307,255
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章