Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private static int[][][] fr = new int[61][61][2];
- private static int[][][] condFr = new int[61][121][2];
- private static void preprocess(int n, int p) {
- Random random = new Random();
- for (int attempt = 0; attempt < 100000; attempt++) {
- realGrid = new int[n][n];
- for (int i = 0; i < n; i++) {
- for (int j = 0; j < n; j++) {
- if (random.nextDouble() < p * 0.01) {
- realGrid[i][j] = 1;
- }
- }
- }
- int[] sumR = new int[n];
- for (int row = 0; row < n; row++) {
- sumR[row] = realGrid[row][0];
- for (int c = 1; c < n; c++) {
- sumR[row] += realGrid[row][c];
- }
- }
- int[] sumC = new int[n];
- for (int col = 0; col < n; col++) {
- sumC[col] = realGrid[0][col];
- for (int r = 1; r < n; r++) {
- sumC[col] += realGrid[r][col];
- }
- }
- for (int i = 0; i < n; i++) {
- for (int j = 0; j < n; j++) {
- int sum = 0;
- for (int x = i; x < n; x++) {
- sum += realGrid[x][j];
- }
- for (int y = j; y < n; y++) {
- sum += realGrid[i][y];
- }
- if (realGrid[i][j] == 1) {
- fr[sumR[i]][sumC[j]][1]++;
- condFr[sum][2 * n - i - j][1]++;
- } else {
- fr[sumR[i]][sumC[j]][0]++;
- condFr[sum][2 * n - i - j][0]++;
- }
- }
- }
- }
- double sumAll = 0;
- double sumPairs = 0;
- for (int i = 0; i < 61; i++) {
- for (int j = 0; j < 61; j++) {
- sumPairs += fr[i][j][0] + fr[i][j][1];
- }
- }
- for (int i = 0; i < 61; i++) {
- for (int j = 0; j < 61; j++) {
- double prob = (fr[i][j][0] + fr[i][j][1] + .0) / sumPairs;
- if (fr[i][j][0] + fr[i][j][1] > 0) {
- double p0 = (1.0 * fr[i][j][0]) / (fr[i][j][0] + fr[i][j][1]);
- double p1 = 1 - p0;
- // System.out.println("i = " + i + ", j = " + j + ", prob = " +
- // df.format(prob) + ", 0 -> " + p0 + ", 1 -> " + p1);
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement