Einzelnen Beitrag anzeigen

Maekkelrajter

Registriert seit: 8. Mär 2017
Ort: Köln
118 Beiträge
 
Delphi 11 Alexandria
 
#1

Stringlist in zufällige Reihenfolge bringen

  Alt 7. Sep 2023, 14:08
Ich brüte z. Z. an einem kniffligen Problem: gegeben eine Stringlist mit 400 Strings, von denen etliche mehrfach (bis zu 30 mal) vorkommen. Daraus soll eine Zufalls-Liste generiert werden.
Der Hintergrund: Aus einer nach Interpret sortierten Playliste soll eine Liste generiert werden, in der die Reihenfolge der Interpreten 'zufällig' ist.
Eigentlich kein Problem, sollte man meinen
Delphi-Quellcode:
 //var SL: TStringlist
for i := SL.Count-1 downto 1 do SL.Exchange(i, random(i+1));
Die so erzeugte Mischung ist eigentlich schon recht zufriedenstellend, aber es gibt noch einen Schönheitsfehler: Es kommt mehrfach vor, dass zwei gleichlautende Einträge unmittelbar aufeinander folgen. Wie kann ich das unterbinden? Gibt es einen (Zufalls-) Algorithmus, mit dem man das verhindern könnte, oder muss ich die erzeugte 'Zufalls' - Liste (evtl. mit einem eigenen Algorithmus) nachbearbeiten?

Gruß LP
  Mit Zitat antworten Zitat