📄 restorableconfuse.java
字号:
/*
* @(#)RestorableConfuse.java 1.0 03/08/22
* Copyright 2003 Entao Zhang, All rights reserved.
*/
/**
* 拼图一般方式的打乱算法(存在路径起始点).此算法为已进行优化的可逆算法.
*/
public class RestorableConfuse extends ConfuseArray {
public int runConfuse(int[] grids, int x, int y){
int arrayLength=x*y;
if (arrayLength < 2 || arrayLength!=grids.length){
throw new ArrayIndexOutOfBoundsException("SrcArray very small or srcArray's length not equals x*y!!!");
}
int up=x, right=1;
int ir=0, swap;
int temp;
swap=r.nextInt(arrayLength);
for (int i=0; i<10000; i++){
if (swap%x==(x-1)) right=-1;
if (swap%x==0) right=1;
if (swap/x==(y-1)) up=-x;
if (swap/x==0) up=x;
ir = r.nextBoolean() ? up : right;
ir += swap;
temp = grids[swap];
grids[swap] = grids[ir];
grids[ir] = temp;
swap = ir;
}
return swap;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -