Как стать автором
Обновить

Вычисление количества многомерных граней у многомерных кубов

image


Так выглядит четырехмерный куб, если проецировать его в трех-мерное пространство.


А что будет представлять из себя куб больших размерностей?

Для простоты будем считать, что куб единичный.

Возьмем множество всех точек на единичном отрезке. Назовем это множество 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 — мерного куба.

Формула для расчета: image
Где скобка — это биномиальный коэффициент из 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
Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.