您的位置:首页 > 编程语言 > Java开发

java第八次作业

2013-05-15 12:50 351 查看










1.元胞自动机

没有办法,时间紧,任务紧急,题目难,工作忙,只能从网上找到的答案进行加工,请谅解。

import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
int iN = cin.nextInt();
boolean[][] vec = new boolean[iN - 1][iN * 2];
for (int i = 0; i < iN - 1; i++) {
for (int j = 0; j < iN * 2; j++) {
vec[i][j] = false;
}
}
CellularAutomata(vec, iN);
}
public static void CellularAutomata(boolean[][] vec, int iN) {
vec[0][iN] = true;
for (int i = 1; i < iN - 1; i++) {
for (int j = 1; j < iN * 2 - 1; j++) {
vec[i][j] = vec[i - 1][j - 1] ^ vec[i - 1][j + 1];
}
}
Print(vec, iN);
}
public static void Print(boolean[][] vec, int iN) {
for (int i = 0; i < iN - 1; i++) {
for (int j = 0; j < iN * 2; j++) {
if (vec[i][j]) {
System.out.print("*");
} else {
System.out.print(" ");
}
}
System.out.println();
}
}
}


2.N皇问题

老师提供的.class ,反编译后的源码

public class Main {
public static boolean isConsistent(int[] paramArrayOfInt, int paramInt) {
for (int i = 0; i < paramInt; ++i) {
if (paramArrayOfInt[i] == paramArrayOfInt[paramInt])
return false;
if (paramArrayOfInt[i] - paramArrayOfInt[paramInt] == paramInt - i)
return false;
if (paramArrayOfInt[paramInt] - paramArrayOfInt[i] == paramInt - i)
return false;
}
return true;
}

public static void printQueens(int[] paramArrayOfInt) {
int i = paramArrayOfInt.length;
for (int j = 0; j < i; ++j) {
for (int k = 0; k < i; ++k)
if (paramArrayOfInt[j] == k)
System.out.print("Q ");
else
System.out.print("* ");

System.out.println();
}
System.out.println();
}

public static void enumerate(int paramInt) {
int[] arrayOfInt = new int[paramInt];
enumerate(arrayOfInt, 0);
}

public static void enumerate(int[] paramArrayOfInt, int paramInt) {
int i = paramArrayOfInt.length;
if (paramInt == i)
printQueens(paramArrayOfInt);
else
for (int j = 0; j < i; ++j) {
paramArrayOfInt[paramInt] = j;
if (isConsistent(paramArrayOfInt, paramInt))
enumerate(paramArrayOfInt, paramInt + 1);
}
}
public static void main(String[] paramArrayOfString) {
int i = StdIn.readInt();
enumerate(i);
}
}


2.Kendall's tau相似度指标

老师提供的.class ,反编译后的源码

public class Main {
public static int Inversion(String[] paramArrayOfString) {
int i = 0;
for (int j = 0; j < paramArrayOfString.length; ++j)
for (int k = j + 1; k < paramArrayOfString.length; ++k)
if (less(paramArrayOfString, k, j))
++i;
return i;
}
public static boolean less(String[] paramArray, int paramInt1, int paramInt2) {
return (paramArray[paramInt1].compareTo(paramArray[paramInt2]) < 0);
}

public static void SortBoth(String[] paramArray, String[] paramArrayOfString2) {
for (int i = 0; i < paramArray.length; ++i)
for (int j = i; j < paramArray.length; ++j)
if (less(paramArray, j, i)) {
String str = paramArrayOfString2[i];
paramArrayOfString2[i] = paramArrayOfString2[j];
paramArrayOfString2[j] = str;
str = paramArray[i];
paramArray[i] = paramArray[j];
paramArray[j] = str;
}
}

public static int distance(String[] paramArray, String[] paramArrayOfString2) {
SortBoth(paramArray, paramArrayOfString2);
return Inversion(paramArrayOfString2);
}
public static void main(String[] paramArrayOfString) {
String str1 = StdIn.readLine();
String str2 = StdIn.readLine();
String[] arrayOfString1 = str1.split(",");
String[] arrayOfString2 = str2.split(",");
int i = arrayOfString1.length;
if (i != arrayOfString2.length) return;
StdOut.printf("%.3f\n", new Object[] { Double.valueOf(1D - 2.0D * distance(arrayOfString1, arrayOfString2) / i / (i - 1)) });
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: