// faces.java data for various n-cubes, n-spheres // various n dimensions for n-dimensional object volume, area, edge length // the number of m-dimensional sub objects // compile javac faces.java // execute java faces > faces_java.out public class faces { public faces() { int n, m; int face[] = new int[11]; System.out.println("faces.java running, data for various n-cubes, n-spheres, n dimensions"); System.out.println("edge length L for cubes, radius R for spheres"); System.out.println(" "); for(n=0; n<=10; n++) { if(n>3) System.out.println("n="+n+"-cube"); if(n==3) System.out.println("n=3-cube cube"); if(n==2) System.out.println("n=2-cube square"); if(n==1) System.out.println("n=1-cube line"); if(n==0) { System.out.println("0-cube point"); System.out.println("vertices = 1"); System.out.println(" "); continue; } for(m=n; m>=0; m--) { face[m] = pwr2(n-m)*comb(n,m); if(m>3) { if(face[m]==1) { System.out.println(m+"-cubes = "+ face[m]+" volume=L^"+m); } else { System.out.println(m+"-cubes = "+ face[m]+" volume="+face[m]+"*L^"+m); } } if(m==3) System.out.println("cubes = "+ face[m]+" volume="+face[m]+"*L^3"); if(m==2) System.out.println("2D faces = "+ face[m]+" area="+face[m]+"*L^2"); if(m==1) System.out.println("edges = "+ face[m]+" length="+face[m]+"*L"); if(m==0) System.out.println("vertices = "+ face[m]); } // end m System.out.println(" "); } // end n System.out.println(" "); System.out.println(" "); System.out.println(" cubes of n dimensions"); System.out.println(" with edge length E, n>=3, volume = E^n, area=(2D faces)*E*E"); System.out.println(" n-cube has 2^n vertex, with n edges at each vertex"); System.out.println(" n>=m, there are pwr2(n-m)*comb(n,m) n-m sub cubes"); System.out.println(" "); System.out.println("Spheres up to 10 dimensions "); System.out.println(" "); System.out.println(" D-1 surface D volume"); System.out.println("2D circle 2 Pi R 1 Pi R^2"); System.out.println("3D sphere 4 Pi R^2 4/3 Pi R^3"); System.out.println("4D 4-sphere 2 Pi^2 R^3 1/2 Pi^2 R^4"); System.out.println("5D 5-sphere 8/3 Pi^2 R^4 8/15 Pi^2 R^5"); System.out.println("6D 6-sphere 1 Pi^3 R^5 1/6 Pi^3 R^6"); System.out.println("7D 7-sphere 16/15 Pi^3 R^6 16/105 Pi^3 R^7"); System.out.println("8D 8-sphere 1/3 Pi^4 R^7 1/24 Pi^4 R^8"); System.out.println("9D 9-sphere 32/105 Pi^4 R^8 32/945 Pi^4 R^9"); System.out.println("10D 10-sphere 1/12 Pi^5 R^9 1/120 Pi^5 R^10"); System.out.println(" "); System.out.println("volume V_n(R)= Pi^(n/2) R^n / gamma(n/2+1)"); System.out.println("gamma(integer) = factorial(integer-1) gamma(5) = 24"); System.out.println("gamma(1/2) = sqrt(Pi), gamma(n/2+1) = (2n)! sqrt(Pi)/(4^n n!)"); System.out.println("or V_2k(R) = Pi^k R^2k/k! , V_2k+1 = 2 k! (4Pi)^k R^(2k+1)/(2k+1)!"); System.out.println("surface area A_n(R) = d/dR V_n(R)"); System.out.println(" "); System.out.println(" "); System.out.println("one definition of sequence of n-spheres"); System.out.println("a1, a2, a3, a4, a5, a6, a7 are angles, typ: theta, phi, ..."); System.out.println(" "); System.out.println("x1, x2, x3, x4, x5, x6, x7, x8 are orthogonal coordinates"); System.out.println("x1^2 + x2^2 + x3^2 + x4^2 + x5^2 + x6^2 + x7^2 +x8^2 = R^2"); System.out.println(" Radius R = sqrt(R^2)"); System.out.println(" "); System.out.println("2D circle"); System.out.println("x1 = R cos(a1) typ: x theta"); System.out.println("x2 = R sin(a1) typ: y theta"); System.out.println(" "); System.out.println("a1 = arctan(x2/x1) or a1 = acos(x1/R)"); System.out.println(" "); System.out.println("3D sphere"); System.out.println("x1 = R cos(a1) typ: z phi"); System.out.println("x2 = R sin(a1) cos(a2) typ: x phi theta"); System.out.println("x3 = R sin(a1) sin(a2) typ: y phi theta"); System.out.println(" "); System.out.println("a1 = arctan(sqrt(x2^2+x3^2)/x1) or a1 = acos(x1/R)"); System.out.println("a2 = arctan(x3/x2) or a2 = acos(x2/sqrt(x2^2+x3^2))"); System.out.println(" "); System.out.println("4D 4-sphere continuing systematic notation, notice pattern"); System.out.println("x1 = R cos(a1)"); System.out.println("x2 = R sin(a1) cos(a2)"); System.out.println("x3 = R sin(a1) sin(a2) cos(a3)"); System.out.println("x4 = R sin(a1) sin(a2) sin(a3)"); System.out.println(" "); System.out.println("a1 = acos(x1/sqrt(x1^2+x2^2+x3^2+x4^2))"); System.out.println("a2 = acos(x2/sqrt(x2^2+x3^2+x4^2))"); System.out.println("a3 = acos(x3/sqrt(x3^2+x4^2)) if x4>=0"); System.out.println("a3 = 2 Pi - acos(x3/sqrt(x3^2+x4^2)) if x4<0"); System.out.println(" "); System.out.println("5D 5-sphere"); System.out.println("x1 = R cos(a1)"); System.out.println("x2 = R sin(a1) cos(a2)"); System.out.println("x3 = R sin(a1) sin(a2) cos(a3)"); System.out.println("x4 = R sin(a1) sin(a2) sin(a3) cos(a4)"); System.out.println("x5 = R sin(a1) sin(a2) sin(a3) sin(a4)"); System.out.println(" "); System.out.println("a1 = acos(x1/sqrt(x1^2+x2^2+x3^2+x4^2+x5^2))"); System.out.println("a2 = acos(x2/sqrt(x2^2+x3^2+x4^2+x5^2))"); System.out.println("a3 = acos(x3/sqrt(x3^2+x4^2+x5^2))"); System.out.println("a4 = acos(x4/sqrt(x4^2+x5^2)) if x5>=0"); System.out.println("a4 = 2 Pi - acos(x4/sqrt(x4^2+x5^2)) if x5<0"); System.out.println(" "); System.out.println("6D 6-sphere"); System.out.println("x1 = R cos(a1)"); System.out.println("x2 = R sin(a1) cos(a2)"); System.out.println("x3 = R sin(a1) sin(a2) cos(a3)"); System.out.println("x4 = R sin(a1) sin(a2) sin(a3) cos(a4)"); System.out.println("x5 = R sin(a1) sin(a2) sin(a3) sin(a4) cos(a5)"); System.out.println("x6 = R sin(a1) sin(a2) sin(a3) sin(a4) sin(a5)"); System.out.println(" "); System.out.println("a1 = acos(x1/sqrt(x1^2+x2^2+x3^2+x4^2+x5^2+x6^2))"); System.out.println("a2 = acos(x2/sqrt(x2^2+x3^2+x4^2+x5^2+x6^2))"); System.out.println("a3 = acos(x3/sqrt(x3^2+x4^2+x5^2+x6^2))"); System.out.println("a4 = acos(x4/sqrt(x4^2+x5^2+x6^2))"); System.out.println("a5 = acos(x5/sqrt(x5^2+x6^2)) if x6>=0"); System.out.println("a5 = 2 Pi - acos(x5/sqrt(x5^2+x6^2)) if x6<0"); System.out.println(" "); System.out.println("7D 7-sphere"); System.out.println("x1 = R cos(a1)"); System.out.println("x2 = R sin(a1) cos(a2)"); System.out.println("x3 = R sin(a1) sin(a2) cos(a3)"); System.out.println("x4 = R sin(a1) sin(a2) sin(a3) cos(a4)"); System.out.println("x5 = R sin(a1) sin(a2) sin(a3) sin(a4) cos(a5)"); System.out.println("x6 = R sin(a1) sin(a2) sin(a3) sin(a4) sin(a5) cos(a6)"); System.out.println("x7 = R sin(a1) sin(a2) sin(a3) sin(a4) sin(a5) sin(a6)"); System.out.println(" "); System.out.println("a1 = acos(x1/sqrt(x1^2+x2^2+x3^2+x4^2+x5^2+x6^2+x7^2))"); System.out.println("a2 = acos(x2/sqrt(x2^2+x3^2+x4^2+x5^2+x6^2+x7^2))"); System.out.println("a3 = acos(x3/sqrt(x3^2+x4^2+x5^2+x6^2+x7^2))"); System.out.println("a4 = acos(x4/sqrt(x4^2+x5^2+x6^2+x7^2))"); System.out.println("a5 = acos(x5/sqrt(x5^2+x6^2+x7^2))"); System.out.println("a6 = acos(x6/sqrt(x6^2+x6^2)) if x7>=0"); System.out.println("a6 = 2 Pi - acos(x6/sqrt(x6^2+x7^2)) if x7<0"); System.out.println(" "); System.out.println("8D 8-sphere"); System.out.println("x1 = R cos(a1)"); System.out.println("x2 = R sin(a1) cos(a2)"); System.out.println("x3 = R sin(a1) sin(a2) cos(a3)"); System.out.println("x4 = R sin(a1) sin(a2) sin(a3) cos(a4)"); System.out.println("x5 = R sin(a1) sin(a2) sin(a3) sin(a4) cos(a5)"); System.out.println("x6 = R sin(a1) sin(a2) sin(a3) sin(a4) sin(a5) cos(a6)"); System.out.println("x7 = R sin(a1) sin(a2) sin(a3) sin(a4) sin(a5) sin(a6) cos(a7)"); System.out.println("x8 = R sin(a1) sin(a2) sin(a3) sin(a4) sin(a5) sin(a6) sin(a7)"); System.out.println(" "); System.out.println("a1 = acos(x1/sqrt(x1^2+x2^2+x3^2+x4^2+x5^2+x6^2+x7^2+x8^2))"); System.out.println("a2 = acos(x2/sqrt(x2^2+x3^2+x4^2+x5^2+x6^2+x7^2+x8^2))"); System.out.println("a3 = acos(x3/sqrt(x3^2+x4^2+x5^2+x6^2+x7^2+x8^2))"); System.out.println("a4 = acos(x4/sqrt(x4^2+x5^2+x6^2+x7^2+x8^2))"); System.out.println("a5 = acos(x5/sqrt(x5^2+x6^2+x7^2+x8^2))"); System.out.println("a6 = acos(x6/sqrt(x5^2+x6^2+x7^2+x8^2))"); System.out.println("a7 = acos(x7/sqrt(x7^2+x8^2)) if x8>=0"); System.out.println("a7 = 2 Pi - acos(x7/sqrt(x7^2+x8^2)) if x8<0"); System.out.println(" "); System.out.println("faces.java finished"); } // end faces int pwr2(int n) { int pwr = 1; if(n<=0) return 1; for(int i=0; in) return 0; return fct(n)/(fct(m)*fct(n-m)); } // end comb public static void main (String[] args) { new faces(); } } // end faces.java