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