Так выглядит четырехмерный куб, если проецировать его в трех-мерное пространство.
А что будет представлять из себя куб больших размерностей?
Для простоты будем считать, что куб единичный.
Возьмем множество всех точек на единичном отрезке. Назовем это множество I. Проведем перпендикулярно этому отрезку другой единичный отрезок, множество которой так же будет I. А теперь произведем декартово произведение (еще его называют прямым) этих двух множеств, то есть получим множество всевозможных упорядоченных пар из этих двух множеств. Так мы получили единичную плоскость. I × I = I 2
Например возьмем число x из множества X и y из другого множества Y. Тогда множество X × Y будет такое множество, элементами которого являются упорядоченные пары (x,y) где x ∈ X и y ∈ Y.
Если взять n единичных отрезков и так же провести декартово произведение, получим куб I × I × I ×… I = I n где n — размерность куба. Грани этого куба будут тоже многомерные. Назовем размерность граней m и посчитаем сколько граней размерности m будут у n — мерного куба.
Формула для расчета:

Где скобка — это биномиальный коэффициент из n по m.
Код на С:
<code>
#include<stdio.h>
#include<math.h>
/* Функция вычисления факториала */
double fact( double N)
{
double output;
if (N==0)
output=1;
else
output=fact(N-1)*N;
return output;
}
int main()
{ double n, m, N;
printf("Введите размерность куба n: "); scanf("%lf", &n);
printf("\nВведите размерность граней m: "); scanf("%lf", &m);
N=fact(n)/(fact(m)*fact(n-m))*pow(2, n-m); /* вычисление кол-ва граней */
printf("\n n=%.lf m=%.lf N=%.lf\n", n, m, N);
return 0;
}
</code>
Пример расчета:
n=10 m=5 N=8064
n=10 m=7 N=960
n=20 m=15 N=496128
n=100 m=1 N=63382530011411470074835160268800