Welche Kategorie von kombinatorischen Problemen wird im Abschnitt "Logikspiele" der LSAT angezeigt?

BEARBEITE: SehenSolving "Wem gehört das Zebra" programmatisch? für eine ähnliche Klasse von Problem

Es gibt eine Kategorie von Logikproblemen in der LSAT, die so aussieht:

Sieben aufeinanderfolgende Zeitfenster für eine Sendung, die in chronologischer Reihenfolge I bis 7 nummeriert sind, werden mit sechs Song-Bändern (G, H, L, O, P, S) und genau einem Nachrichtensender gefüllt. Jedes Band muss einem anderen Zeitfenster zugewiesen werden, und kein Band ist länger als jedes andere Band. Die Sendung unterliegt folgenden Einschränkungen:
L muss unmittelbar vor O gespielt werden.
Die Nachricht muss irgendwann nach L abgespielt werden.
s müssen genau zwei Zeitschlitze zwischen G und P sein, unabhängig davon, ob G vor P kommt oder ob G nach P komm

Ich bin daran interessiert, eine Liste von Permutationen zu generieren, die die Bedingungen als Lernmethode für den Test und als Programmieraufgabe erfüllen. Ich bin mir jedoch nicht sicher, um welche Klasse von Permutationsproblemen es sich handelt. Ich habe das Typproblem wie folgt verallgemeinert:

Gegeben ein Array mit n-Länge A:

Wie viele Möglichkeiten gibt es, eine Reihe von n eindeutigen Elementen in A anzuordnen? Z.B. Wie viele Möglichkeiten gibt es, ABCDEFG neu anzuordnen?Wenn die Länge des Satzes eindeutiger Elemente kleiner als die Länge von A ist, wie viele Möglichkeiten kann der Satz in A angeordnet werden, wenn Elemente im Satz mehr als einmal vorkommen können? Z.B. ABCDEF => AABCDEF; ABBCDEF usw.Wie viele Möglichkeiten gibt es, innerhalb von A einen Satz eindeutiger Elemente anzuordnen, wenn die Elemente des Satzes "Sperrbedingungen" unterliegen?

Mein Gedanke ist, die Beschränkungen zu kodieren und dann etwas wie Pythons itertools zu verwenden, um die Permutationen zu generieren. Gedanken und Vorschläge sind willkommen.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage