Ich habe ein Rad, das 9 Speichen nimmt, aufgrund von Fertigungstoleranzen jede Speiche hat ein anderes Gewicht.VB.net - Permutationen eines 9 Stück (Auswuchten Speichen eines Rades)
Ich muss die Speichen am Rad so anordnen, dass es am wenigsten aus dem Gleichgewicht ist.
das Berechnen der Rest I Summe der Vektoren (Komplex System.Numerics), dh
Complex für Speiche # 1 = Complex.FromPolarCoordinates (Gewicht # 1, 0)
und
Komplex für die Speiche # 2 = Complex.FromPolarCoordinates (Gewicht # 2, 2 * math.pi/9)
nach allen Berechnungen durchführen ich die resultierende erhalten und die komplexe Echt sparen, Complex.real
dann ändere ich die Reihenfolge der Speichen und berechne das complex.real neu.
Ich habe 2 Fragen,
1) Wie kann ich die Permutationen berechnen, effizient die Reihenfolge ändern? Ich möchte 9 verschachtelte Schleifen für die (362880) 9 vermeiden! Permutationen?
2) Gibt es eine Abkürzung für die Iteration?
Ich bin mir nicht sicher, welche anderen Permutationsanwendungen es gibt, die als Vergleich verwendet werden könnten.
Meine größte Sorge ist die Effizienz, ich habe heute den Code skizziert und bin im Permutationsbereich steckengeblieben. Ich poste später etwas Code.
Vielen Dank im Voraus
habe ich eine Klasse von Speichen und Gewichte, von diesem I permitations
[Diese Antwort] (https://stackoverflow.com/a/31885811/3386109) kann helfen. – user3386109