View difference between Paste ID: DgTdVFUM and N6XvbP4P
SHOW: | | - or go back to the newest paste.
1
import java.io.BufferedWriter;
2
import java.io.File;
3
import java.io.FileWriter;
4
import java.io.IOException;
5
import java.util.ArrayList;
6
import java.util.HashMap;
7
import java.util.Scanner;
8
9
public class VQCGenerator {
10
    private static HashMap<Integer, HashMap<Integer, ArrayList<String>>> map = new HashMap<>();
11
12
    // ADD PATH HERE
13
    private static String path = ""; 
14
15
    private static int iMax = 512;
16
    private static int xMin = -64;
17
    private static int yMin = 0;
18
    private static int xMax = 64;
19
    private static int yMax = 64;
20
    private static int setSize = 12;
21
22
    public static void main(String[] args) {
23
        createGrid(true, true, false);
24
    }
25
26
    public static void createGrid(boolean parseMap, boolean output, boolean showGraph) {
27
28
        for (int i = 0; i < iMax; i++) {
29
            for (int j = 0; j < i; j++) {
30
31
                int a = i - j;
32
                int b = i + j;
33
                int c = a * b;
34
                int d = (int) Math.sqrt(c);
35
                int e = c - (d*d);
36
                int f = e - ((2 * d) + 1);
37
                int n = i - d;
38
                int x = d - a;
39
40
                if (parseMap) {
41
                   createGridImpl(e, x, d, n, a, b, f);
42
                }
43
            }
44
        }
45
46
        if (output) {
47
            outputGrid();
48
        }
49
50
        if (showGraph) {
51
            //showGraph(xList, yList, "e", "a % (a+b) primes");
52
        }
53
    }
54
55
    private static void createGridImpl(int e, int n, int d, int x, int a, int b, int f) {
56
        if (!map.containsKey(e)) {
57
            map.put(e, new HashMap<Integer, ArrayList<String>>());
58
        }
59
60
        if (!map.get(e).containsKey(n)) {
61
            map.get(e).put(n, new ArrayList<>());
62
        }
63
64
        if (!map.containsKey(f)) {
65
            map.put(f, new HashMap<Integer, ArrayList<String>>());
66
        }
67
68
        if (!map.get(f).containsKey(n - 1)) {
69
            map.get(f).put(n - 1, new ArrayList<String>());
70
        }
71
72
        String formatTemplate = "%1$s:%2$s:%3$s:%4$s:%5$s:%6$s";
73
74
        String text = "{" + String.format(formatTemplate, e, n, d, x, a, b) + "}";
75
        map.get(e).get(n).add(text);
76
77
        text = "{" + String.format(formatTemplate, f, n - 1, d + 1, x + 1, a, b) + "}";
78
        map.get(f).get(n - 1).add(text);
79
    }
80
81
    private static void outputGrid() {
82
        File f = new File(path);
83
84
        try {
85
            BufferedWriter bw = new BufferedWriter(new FileWriter(f));
86
87
            for (int y = 0; y < yMax; y++) {
88
                for (int z = 0; z < setSize; z++) {
89
                    for (int x = xMin; x < xMax; x++) {
90
91
                        if ((map.containsKey(x)) && (map.get(x).containsKey(y)) && (map.get(x).get(y).size() > z)) {
92
                            bw.write(map.get(x).get(y).get(z) + ",");
93
                        } else {
94
                            bw.write(",");
95
                        }
96
97
                    }
98
                    bw.write("\n");
99
                }
100
            }
101
102
            bw.close();
103
        } catch (IOException ioe) {
104
            ioe.printStackTrace();
105
        }
106
    }
107
}