Как получить все перестановки элементов в матрице, кроме вращения клонов - PullRequest
1 голос
/ 24 октября 2019

Я создал программу на python, которая решает логическую игру-головоломку, которую я купил для моего ребенка. Программа уже работает, но выдает 4 решения вместо 1 и работает в 4 раза медленнее, чем следовало бы. Это происходит потому, что в настоящее время он использует перестановки (из itertools) для генерации всех возможных упорядочений элементов головоломки, но его можно оптимизировать. Позвольте мне попытаться объяснить:

У меня есть список из девяти уникальных элементов [A, B, C, D, E, F, G, H, I], представляющих матрицу 3x3:

A B C
D E F
G H I 

Мне нужно сгенерировать все возможные перестановки в этом списке, но исключить клоны, полученные при повороте матрицы, поэтому для приведенного выше списка клонами являются:

[C,F,I,B,E,H,A,D,G]
[I,H,G,F,E,D,C,B,A]
[G,D,A,H,E,B,I,F,C]

, поскольку они представляют матрицы, полученные при повороте первойmatrix

C F I
B E H
A D G

I H G
F E D
C B A

G D A
H E B
I F C

Есть ли какой-нибудь модуль python, который можно использовать для генерации таких возможностей? Или, может быть, у вас есть идея, как можно реализовать такой генератор?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...