public class TrianglesOneThree { private static int[] edg = new int[12]; private static int[] tri = new int[8]; private static int[] quar = new int[3]; private static int total; private static int[] edgTotal = new int[13]; public static void main(String [] args) { total = 0; for(int i = 0; i < 12; i++) edgTotal[i] = 0; for(int i = 0; i < 12; i++) edg[i] = 0; for(int i = 0; i < 4096; i++) { total = total + checkTri(); addModTwo(edg,0); } System.out.println("Total possibilities: " + total); for(int i = 0; i < 13; i++) System.out.println("Possibilities with " + i + " 'zero' edges: " + edgTotal[12 - i]); } public static void addModTwo(int[] a, int i) { if(a[i] == 0) { a[i] = 1; return; } else if(i > 10) return; else { a[i] = 0; addModTwo(a,i+1); } } public static int checkTri() { tri[0] = edg[0] + edg[1] + edg[2]; tri[1] = edg[2] + edg[3] + edg[5]; tri[2] = edg[0] + edg[3] + edg[4]; tri[3] = edg[1] + edg[4] + edg[5]; tri[4] = edg[9] + edg[10] + edg[11]; tri[5] = edg[7] + edg[8] + edg[11]; tri[6] = edg[6] + edg[8] + edg[9]; tri[7] = edg[6] + edg[7] + edg[10]; for(int i = 0; i < 8; i++) if(tri[i] == 1) return 0; if(!checkQuartic()) return 0; int edges = 0; for(int i = 0; i < 12; i++) edges = edges + edg[i]; edgTotal[edges]++; return 1; } public static boolean checkQuartic() { quar[0] = (edg[0] * edg[5] * edg[9] * edg[7]) - (edg[2] * edg[4] * edg[6] * edg[11]); quar[1] = (edg[0] * edg[5] * edg[10] * edg[8]) - (edg[1] * edg[3] * edg[6] * edg[11]); quar[2] = (edg[1] * edg[3] * edg[9] * edg[7]) - (edg[2] * edg[4] * edg[10] * edg[8]); for(int i = 0; i < 3; i++) if(quar[i] != 0) return false; return true; } }
Notice: (null)(): [ALERT] Mailbox is over quota in Unknown on line 0