Pull to refresh

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

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
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.