==> geometry/hypercube.s <==
Take any vertex of the hypercube, and ask how many k-V's it
participates in. To make a k-V it needs to combine with k adjacent and
orthogonal vertices, and there are (nCk) distinct ways of doing this
[that is, choose k directions out of n possible ones]. Then multiply
by 2^n, the total number of vertices. But this involves multiple
counting, since each k-V is shared by 2^k vertices. So divide by 2^k,
and this yields the answer: (nCk)*2^{n-k}.
For example, 12d hypercube:
0-v: 4,096
1-v: 24,576
2-v: 67,584
3-v: 112,640
4-v: 126,720
5-v: 101,376
6-v: 59,136
7-v: 25,344
8-v: 7,920
9-v: 1,760
10-v: 264
11-v: 24
12-v: 1