Nein, nein, das geht so nicht. Beispiel:
- 1 8 4 3 5 und die neue Zahl wäre 8
- wir kommen zur Stelle j = 2, wo A[j] = 8
- neue Zufallszahl: 5
- wir kommen zur Stelle j = 1, wo A[j] <> 5
- fertig: 1 8 4 3
5 5
Fehler erkannt?
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| for i := 1 to 20 do begin found := True;
while found do begin found := False; z := Random(30) + 1;
for j := i - 1 downto 1 do if a[j] = a[i] then found := True; end;
a[i] := z; end; |
Neuer Ablauf:
- 1 8 4 3 5 und die neue Zahl wäre 8
- wir kommen zur Stelle j = 2, wo A[j] = 8
- neue Zufallszahl: 5
- wir beginnen erneut von vorne
- wir kommen zur Stelle j = 5, wo A[j] = 5
- neue Zufallszahl: 7
- wir beginnen erneut von vorne
- fertig: 1 8 4 3 5 7
"Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)