Как представить перестановку в нотации формы цикла в C ++?

Описание проблемы таково. я имею 1 в k отдельные переменные (например, 1: грани куба, 2: вершины куба) и 1 в n_k экземпляры каждой переменной (продолжая пример выше, n_1 = 6для каждого лица куба и n_2 = 8 для каждого лица куба). Затем существует группа перестановок, определяющая допустимые перестановки экземпляров переменных. В качестве конкретного примера мы имеем для группы перестановок куб, где f1, f2, f3, f4, f5, f6 шесть лиц (f переменная 1) и v1, v2, v3, v4, v5, v6, v7, v8 8 лиц (v переменная 2). Тогда некоторые примеры допустимых перестановок

G = {e, (f1)(f2 f3 f4 f4)(f6)(v1 v2 v3 v4)(v5, v6, v7, v8) ...}

Не беспокойтесь о поиске группы перестановок или о том, как решить, какое лицо соответствует какому fi или какая вершина к какой vj, Дело в том, что, хотя обозначение массива удобно хранить перестановку программно (vector<vector<int>> arr с arr[j][i] в соответствии со значением, переставленным в положение i переменной j), Я должен быть в состоянии быстро определить, какие элементы в каком цикле. Как в примере выше, f2, f3, f4, а также f5 все в одном цикле.

Для этого я хотел бы сохранить их в представлении циклического обозначения в C ++. Я не могу придумать хороший способ (vector<vector<vector<int>>> это все, что у меня есть, так как на самом деле я не заинтересован в сохранении имен переменных, просто различая их), чтобы представить это. Быстрый способ рассчитать это или хороший способ сохранить это было бы полезно.

Я знаю, что это не самое четкое объяснение, поэтому не стесняйтесь спрашивать разъяснения.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector