public class TriangleTwo { private static int[] edg= new int[12]; private static int[] tri = new int[8]; private static int[] cub = new int[4]; 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[4] + edg[5] + edg[8]; tri[1] = edg[0] + edg[1] + edg[6]; tri[2] = edg[6] + edg[7] + edg[8]; tri[3] = edg[2] + edg[3] + edg[7]; tri[4] = edg[3] + edg[4] + edg[11]; tri[5] = edg[1] + edg[2] + edg[10]; tri[6] = edg[9] + edg[10] + edg[11]; tri[7] = edg[0] + edg[5] + edg[9]; for(int i = 0; i < 8; i++) if(tri[i] == 1) return 0; if(!checkCubic()) return 0; int edges = 0; for(int i = 0; i < 12; i++) edges = edges + edg[i]; edgTotal[edges]++; return 1; } public static boolean checkCubic() { cub[0] = (edg[5] * edg[1] * edg[3]) - (edg[2] * edg[4] * edg[0]); cub[1] = (edg[6] * edg[4] * edg[10]) - (edg[11] * edg[1] * edg[8]); cub[2] = (edg[5] * edg[10] * edg[7]) - (edg[2] * edg[8] * edg[9]); cub[3] = (edg[6] * edg[3] * edg[9]) - (edg[11] * edg[0] * edg[7]); for(int i = 0; i < 4; i++) if(cub[i] != 0) return false; return true; } }
Notice: (null)(): [ALERT] Mailbox is over quota in Unknown on line 0