Ваша задача будет написать функцию или программу, которая будет принимать целое число в n>0
качестве входных данных и выводить список ребер n
-мерного гиперкуба . В теории графов ребро определяется как два набора вершин (или углов, если вы предпочитаете), которые связаны между собой.
Пример 1
1-мерный гиперкуб представляет собой прямую и содержит две вершины, которые мы будем называть a
и b
.
Поэтому на выходе будет:
[[a, b]]
Пример 2
4-мерный гиперкуб (или тессеракт) состоит из 32 ребер, и его график выглядит следующим образом
и результат может выглядеть следующим образом
[[a, b], [a, c], [a, e], [a, i], [b, d], [b, f], [b, j], [c, d], [c, g], [c, k], [d, h], [d, l], [e, f], [e, g], [e, m], [f, h], [f, n], [g, h], [g, o], [h, p], [i, j], [i, k], [i, m], [j, l], [j, n], [k, l], [k, o], [l, p], [m, n], [m, o], [n, p], [o, p]]
правила
- Вы можете называть вершины любым удобным вам способом, если имя уникально.
- Ребра являются ненаправленными, то есть
[a, b]
и[b, a]
считаются одним ребром. - Ваш вывод не должен содержать дубликаты ребер.
- Вывод может быть в любом разумном формате.
- Стандартные лазейки запрещены.
счет
Самый короткий код выигрывает.