tomtom62 hatte geschrieben:
| Zitat: |
| Also Stringlist ist gut, aber besser denke ich wäre der folgende Ansatz |
Dein Ansatz hat einen entscheidenden Nachteil den ich vermeiden wollte:
Deine If Abfrage:
Delphi-Quelltext
1: 2:
| if liste1.indexof(tt) <0 |
Wenn man Pech hat dauert es bis man eine passende Zahl zieht, da doppelt gezogene Zahlen lediglich verworfen werden, jedoch nichts destotrotz zunächst doppelt gezogen werden....
Bei meiner Variante komme ich OHNE JEDEN VERGLEICH aus, dh.
das zeihen von n Zahlen benötigt immer exakt n Ziehungen....
Bei mir wird nämlich eigentlich nicht die Zahl gezogen, sondern die Liste mit allen Zahlen nach Zufall nur "umsortiert"..
| Zitat: |
Application.ProcessMessages;
// Andere Anwendungen wollen auch noch leben -) |
Da man also nicht wegen "blöder" Zufallszahlen in einer Schleife hängenbleiben kann, kann man sich das auch ersparen.
Anders ausgedrückt: Das Zufallselement bestimmt nicht die Anzzahl der Iterationen des Algorhytmus...
Catweasel
P.S.: Das löschen eines Strings aus einer Stringliste ist um einiges Schneller, als das ändern einer Arraygrösse.....
In sofern vergleichbar mit Peter Lustigs zweitem Tipp, aber ohne die Bedenken wegen Performance..
P.P.S:
@ Peter Lustig
Jaja, das sind die guten Moderatoren immer soo penibel mit den Code Tags
Jetzt war ich mal penibel und nun isses doch wieder falsch? *beleidigt gugg*
Ich dachte immer die "Delphi" Code-Tags wären für Delphi Quelltexte die Syntaktisch korrekt sind, die man also auch per copy&Paste übernehmen könnte, ohne Compilerfehler zu bekommen (referenzierte Komponenten mal als vorhanden vorausgesetzt)...
Und die "Code" Code-Tags seien für andere Quellcodes wie C, JAva, Basic

, etc... oder eben für Pseudo Quellcode....
Und als solchen habe ich meinen Bezeichnet.... Aaaaalso sollte die Code Tags richtig sein, oder......
Würd mich echt mal interessieren wann ihr was haben wollt.... Nervt euch ja auch das immer wieder ändern (zu müssen?)
Pommes werden schneller fertig wenn man sie vor dem Frittieren einige Minuten in siedendes Fett legt.