Einzelnen Beitrag anzeigen

Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.064 Beiträge
 
Delphi XE2 Professional
 
#8

AW: Kombinatorik - Index von Kombinationen

  Alt 12. Nov 2017, 11:46
@Michael II

Ja klar, kann man das für ein bestimmtes K vereinfachen, aber es bleibt die innere Schleife für N=64.
Mein Beispiel für N=5, K=3 war ja nur um aufzuzeigen wie die Liste der Kombinationen aussieht.
Hätte ich solch eine Liste für N=64 K=3 hier rein gestellt, wäre das etwas unübersichtlich gewesen (41664 Zeilen).
Du schreibst, dass die indexvon für grosse n sehr langsam wäre. Hast du das getestet oder erahnt?
Ich hatte das weder getestet noch erahnt sondern "gesehen".
Ich hatte auch nicht geschrieben die indexvon sei für große n sehr langsam.
Was ich schrieb war, "braucht bei etwas größerem N einfach zu lange" (gemeint: für meine Zwecke zu lange).
Tatsächlich arbeitet sie recht flink.
Stell dir jemanden vor, der 100 m in 9.27 s läuft.
Dann ist der verdammt schnell, denn schneller geht es nicht. https://de.wikipedia.org/wiki/100-Meter-Lauf
Aber um in Hamburg zu Frühstücken und in Paris Mittag zu Essen reicht es trotzdem nicht.

Ich hab mal Spaßeshalber die indexvon mit der CombiIndex2 aus #1 am Beispiel N=64 K=2 verglichen. Die indexvon braucht etwa 50 mal so lange.
Dann hab ich versucht die HI-Schleife in der indexvon aúfzulösen.
Bei N=64 und K=2 kam dann letztendlich ein Einzeiler heraus - quasi identisch mit der CombiIndex2.

Tja, und dann habe ich versucht das Gleiche für K=3 zu machen.
Beim ersten Durchlauf (HI=0) konnte ich
for i := 0 to firstel-1 do inc( ind, tief( n-i-1, k-hi-1 ) );
durch Result := (A * (A*A - 189*A + 11906))/6; wobei A identisch ist mit intar[0]
ersetzen.
Aber beim zweiten durchlauf (HI=1) wurde schnell klar, dass es so einfach nicht ist, weil N um intar[0]+1 gesenkt wurde.
Deshalb müßte ich tatsächlich mit case Strukturen arbeiten, oder mit einer kleinen Tabelle.
Aber das mache ich ja jetzt auch schon. Und wenn das Ergebnis ist, dass die Tabelle nur "etwas" kleiner ist, dann macht das für mich keinen Sinn.
Ich bleibe also vorerst (für die 5 Steiner-Tabellen) bei dem was ich schon habe, und wenn ich mich dann irgenwann an die 6-Steiner mache, schau ich mir das wieder an.

Nochmal: Herzlichen Dank für die Mühe die du dir gemacht hast.
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat