Доброе время суток.
Пытаюсь придумать алгоритм определения координат вершин n-мерного куба при известных координатах "нулевой" вершины
Для упрощения принимаю что у куба длина одномерной грани равна единице.
Количество вершин - понятно: 2 в степени n. Но дальше пока что в голове щёлкает впустую.
Пока что за вечер смог придумать генерировать координаты вершин так сказать по количеству единиц в координатах. То есть для трёхмерного куба будет две известные вершины (в принципе для n-мерных так - же, вершина где все координаты равны 0 и вершина где равны единице), группа вершин из трёх элементов, где в координатах присутствует одна единица и группа вершин из трёх элементов, где присутствуют две единицы. Для четырёхмерного принцип тот же
Код:
n = 3
{ 0, 0, 0 } 0
{ 1, 1, 1 } 3
{ 1, 0, 0 } 1
{ 0, 1, 0 } 1
{ 0, 0, 1 } 1
{ 1, 0, 1 } 2
{ 1, 1, 0 } 2
{ 0, 1, 1 } 2
n = 4
{ 0, 0, 0, 0 } 0
{ 1, 1, 1, 1 } 5
{ 1, 0, 0, 0 } 1
{ 0, 1, 0, 0 } 1
{ 0, 0, 1, 0 } 1
{ 0, 0, 0, 1 } 1
{ 1, 1, 0, 0 } 2
{ 0, 1, 1, 0 } 2
{ 0, 0, 1, 1 } 2
{ 1, 0, 1, 0 } 2
{ 0, 1, 0, 1 } 2
{ 1, 0, 0, 1 } 2
{ 1, 1, 1, 0 } 3
{ 0, 1, 1, 1 } 3
{ 1, 1, 0, 1 } 3
{ 1, 0, 1, 1 } 3
Общее количество таких групп равно n+1 (или n-1, если отбросить две очевидные вершины).
Пока что не совсем понятно с количеством элементов в каждой группе, хотя есть подозрение, что нужно идти в сторону floor(n-(номер группы)) при n<n/2 (и зеркально с "обратной" стороны).
Ну и непонятно еще с комбинаторикой внутри групп.
Да и вообще возникает ощущение что иду неправильным путём. Подскажите, правильным путём я иду или гдето свернул не туда?