Zwei Arrays, bei denen Elemente in Array x in Array y sein können, aber nicht umgekehrt, testen alle Permutationen

Eine kleine Anwendung, die ich geschrieben habe, ermöglicht es einem Benutzer, zwei Arrays verschiedene Elemente hinzuzufügen. Einige Logik berechnet eine Zahl aus dem Inhalt jedes Arrays.

Alle Elemente in Array x können in Array y und wieder zurück platziert werden. Elemente, die zu Array y gehören, können niemals verschoben werden (es sei denn, sie wurden aus Array x verschoben).

Der Benutzer kann diese Elemente mithilfe einer einfachen Javascript-Benutzeroberfläche in zwei Listen verschieben. Zur Vereinfachung habe ich ursprünglich ein naives Skript erstellt, das:

Ein Objekt von a nach y verschoben.Hat mit dieser 'Möglichkeit' eine Logik ausgeführtWenn das Ergebnis geringer war als zuvor, lassen Sie x in y.Wenn nicht, bleibt x in x.Fahren Sie mit dem nächsten Punkt in x fort und wiederholen Sie den Vorgang.

Ich wusste, dass dies unwirksam war. Ich habe herumgelesen und wurde angewiesen, dies mit bitweiser Mathematik zu tun, um mich an die Möglichkeiten oder „Permutationen“ zu erinnern, aber ich habe zu diesem Zeitpunkt Mühe, mich um dieses spezielle Problem zu kümmern.

Wenn jemand erklären könnte (Pseudocode ist in Ordnung), was der beste Weg wäre, um Folgendes zu erreichen, wäre ich sehr dankbar.

Array x = [100.200.300.400.500] Array y = [50.150.350.900]

Verschieben Sie mit diesen beiden Arrays für jeden Wert von x jede Kombination dieses Werts und aller anderen Werte von x in das Array y. Ich werde für jedes eine Logik ausführen (dh das Testergebnis und diese 'Permutation' in einem Array speichern (ein Objekt aus zwei Arrays, die x und y darstellen). Ich schätze, dass dies bei großen Arrays ziemlich teuer ist und wahrscheinlich sehr oft wiederholt wird Kombinationen. Ich fühle mich fast da, aber in diesem letzten Stadium verloren.

Entschuldigung für die lange Erklärung und vielen Dank im Voraus!

Antworten auf die Frage(1)

Ihre Antwort auf die Frage