日期:2014-05-20 浏览次数:21073 次
public class Main {
public Main () {
start ();
}
public static void main (String[] args) {
new Main ();
}
private void start () {
for (int i = 0; i < m; i++) {
//
for (int j = 0; j < n; j++) {
iarr[j] = 0;
}
iarr_1[i][0] = g_1 ();
//
for (int j = 0; j < n; j++) {
iarr[j] = j;
}
iarr_1[i][1] = g_2 ();
}
for (int i = 0; i < 2; i++) {
for (int j = 0; j < m; j++) {
System.out.printf("%1$5s", iarr_1[j][i]);
}
System.out.println("");
}
}
private int g_1 () {
int j = 0;
while(j < n-1) {
int x = r.nextInt (n);
if (iarr[x] == 0) {
j++;
iarr[x] = j;
}
}
return check ();
}
private int g_2 () {
for (int i = 0; i < n*n; i++) {
int x = r.nextInt (n);
int y = r.nextInt (n);
{
int c = iarr[x];
iarr[x] = iarr[y];
iarr[y] = c;
}
}
return check ();
}
private int check () {
int j = 0;
for (int i = 0; i < n; i++) {
if (iarr[i] == i) {
j++;
}
}
return j;
}
private final int n = 1000;
private int[] iarr = new int[n];
private final int m = 10;
private int[][] iarr_1 = new int[m][2];
private java.util.Random r = new java.util.Random ();
}
------解决方案--------------------