Grüße Delphian Stapler.Diskrete Permutation Teilmenge Rang und Unrank in Delphi
Ich habe durch die Website, alle "Permutation Rang & Unrank" verwandten Diskussionen durchsucht und konnte nicht die eine finden, die meine Bedürfnisse erfüllt.
In Delphi:
mit einer Anordnung von:
Members: array [0..3] of Byte = (0,1,2,3);
Will man die durch alle verschiedene Permutationen von drei Elementen zusammengesetzt zu durchlaufen, kann man schätzen, dass der Ergebnisliste wird nach 24 Zeilen zusammengesetzt sein , lexikographisch geordnet als:
0 012
1 013
2 021
3 023
4 031
5 032
6 102
7 103
8 120
9 123
10 130
11 132
12 201
13 203
14 210
15 213
16 230
17 231
18 301
19 302
20 310
21 312
22 320
23 321
man die Größe der Liste durch die Verwendung einer „n wählen k“ Formel berechnen kann, wobei „n“ für die Anzahl der Mitglieder steht und „k“ für die Anzahl der Möglichkeiten:
p(n,k) = n!/(n-k)!
p(4,3) = 4!/(4-3)! = (4 x 3 x 2 x 1)/(1 x 1) = 24
Was ich versuche, ist, herauszufinden, wie man (ohne durch die gesamte Liste der Suche):
Durch den lexicographic Rang liefern, sagen wir, "13" kann man "entrank" und die Teilmenge "203" erhalten.
Durch die Bereitstellung der Teilmenge "203" kann man den lexikographischen Rang "13" erhalten.
Jede Hilfe wird sehr geschätzt.
Vielen Dank für Ihre Zeit.
gefunden werden Warten Sie, Sie haben bereits alle n-Permutationen in einem gegebenen Raum mit k-Gruppen berechnet. Warum müssten Sie eine Liste der Ergebnisse iterieren, wenn Sie das Ergebnis bereits mit der Formel erhalten können? Sie suchen übrigens nach einem TDictionary, in dem der KEY die Nummer (13) und der VALUE der Wert 203 ist. Ich würde das verwenden! –
Grüße Alberto, ich werde das mit sehr großen Leerzeichen verwenden, nur um einige Subsets unter bestimmten Bedingungen zu extrahieren, kann ich mir nicht mehrere Terabyte db für die Suche nach einem bestimmten Index (Rank) oder SubSet (UnRank) leisten. –
Ein TDictionary würde helfen, es ist ein O (1) in Bezug auf die Suchgeschwindigkeit. Kann http://docwiki.embarcadero.com/CodeExamples/Tokyo/en/Generics_Collections_TDictionary_(Delphi) helfen? –