Наиболее естественная структура данных для хранения перестановки отдельных элементов? - PullRequest
0 голосов
/ 27 января 2019

Один простой способ сохранить перестановку последовательности отдельных элементов - это строка (или список), например, «acb», которая явно является перестановкой «abc».Однако, если я буду использовать строку для представления своей перестановки, я получу возможность использовать строки типа "abb", которые не соответствуют какой-либо перестановке.В результате представление перестановок в строках, так сказать, не является плотным.Списки индексов, таких как [2,3,1], имеют ту же проблему.

В качестве альтернативы, я мог бы распознать, что среди N элементов есть N!перестановки, которые можно перечислить каким-либо образом.Затем я мог бы сохранить перестановку как целое число.Однако это не идеально, потому что целое число было бы непрозрачным для интерпретации (никто не знал бы, что означало «число перестановок 43»), а также потому, что групповая структура целых чисел над сложением не похожа на групповую структуру перестановок.

Есть ли способ представить перестановки в компьютере, у которого нет недостатков предложенных мною методов?

...