A face of the simplex is visible from just those points outside the half-space defined by that face. That’s just because the simplex is convex!


As an artifice to compute Ank, we turn to Rn+1, an n+1 dimensional space and an n-simplex therein with its n+1 vertices at:
<ε, 0, 0, ...>
<0, ε, 0, ...>
...
<0, 0, ..., ε>
where ε is a small positive number.

The simplex lies in the subspace S = {<s0, s1, ... sn> | Σsi = ε}. The simplex proper is for those points of S all of whose coordinates are positive.

Here is at least a Monte Carlo algorithm to compute the Ank’s. We want to efficiently sample the distribution of directions in the subspace S taking care to make the probability of a region of directions proportional to the measure of that region. We use Gaussian distributions to overcome an efficiency problem with the more familiar schemes for choosing random directions in lower dimensions. Consider the spherical Gaussian probability distributions about the origin with large standard deviations in both Rn+1 and S. Choosing n+1 random normal deviates, d0, d1, ... dn, and interpreting them as the coordinates of a point in Rn+1, gives us a sample from the n+1 dimensional Gaussian cloud. Projecting it onto the closest point in S, whose coordinates are ei = di − Σdj/(n+1) + ε/(n+1), gives us a sample from the n dimensional Gaussian cloud in S. (Soon we shall let ε go to 0.) Spherical symmetry ensures that our sample in S has the correct distribution. Notice that this amounts to subtracting the mean of the deviates from each deviate. This point e in S is in half-space k just in case ek > 0.

Thus the (unconventional) magnitude of the angle, Ank, defined by k faces of a regular n-simplex is the probability that the mean of n+1 samples drawn from a normal distribution will be greater than the first k of those samples.
Ank = P(∀j(0≤j<k ⇒ Σidi/(n+1) < dj)).


The program described below works but practically fails due to excessive sample size. Here are two more schemes one of which works.

This Monte Carlo program computes and reports an array, h, of counts. “n” is a compile time constant. “h[k]” is the count of the sample points that fall in k half-spaces, but no more. The program proceeds to compute Ank from these statistics according to the ideas below.

We will need the binomial coefficients: nCk = n!/(k!(n−k)!) which is the number of sub-sets of size k from a set of size n. This is for n≥0 and 0≤k≤n. For k outside this range nCk = 0.

Let Q be the set of half-spaces in S of the form xi > 0 for some i such that 0≤i≤n. Q has n+1 members. Let the letters p & q denote subsets of Q and let Hp denote the number of samples in p. There are n+1Ck such k-hedral angles. For each subset of k half-spaces there is a particular k-hedral angle of size Ank. For any j<k, a sample counted in h[j] belongs to each of these nCk angles.

Thinking out Loud

My intuition told me that the h histograph contained all of the information that I needed. I hesitate to tell how long it took me to construct the method to compute the angle estimates from h. The following paragraph first captured the essence for me:

To evaluate A94: We consider the total sample count for all quadrahedral angles and then divide by the number of these angles. Note that some samples will fall in multiple such angles and they must thus be counted as many times as there are such angles. h[3] contributes nothing for every sample that concerns us falls in at least 4 half-spaces. Samples reported by h[4] each contribute one to our total for a sample that is in just 4 half spaces falls in exactly one of our angles. Each sample from the h[5] population falls in just 5 quadrahedral angles. Thus 5h[5] = 5C4h[5] is included in out total. For each j from 4 to 10 we accumulate jC4h[j] in our total. We then divide by the number of quadrahedral angles which is 10C4.

Concisely: Ank ≃ (Σjh[j](jCk))/(n+1Ck Σjh[j]).

Program yields:

100000000 samples for the 2-simplex
jh[j]
00
150007422
249992578
30
kA2kα2k C
01.000000.000001
10.499980.999953
20.166641.047043
30.000000.000001

100000000 samples for the 3-simplex
jh[j]
00
117550564
264899780
317549656
40
kA3kα3k C
01.000000.000001
10.500001.000004
20.195911.230976
30.043870.551344
40.000000.000001

100000000 samples for the 4-simplex
jh[j]
00
14894463
245106884
345104700
44893953
50
kA4kα4k C
01.000000.000001
10.500000.999995
20.209781.3181210
30.064680.8128010
40.009790.193215
50.000000.000001

ncos−1(1/n)our estimate for α22
21.047201.04704
31.230961.23097
41.318121.31812
Here is the program output for 108 samples in 24D.
You can see that this did not produce a value for α2424.