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 | } |