Цитата:
Сообщение от Alegun
Да не то что легче, - с приведенными условиями возможен даже вечный цикл - их выполнение может очень долго подбираться или вообще никогда не произойти
|
Совершенно верно. Даже если не случится вечный цикл, то всё равно это очень плохой способ расположить числа в случайной последовательности - зачем занимать процессор глупым подбором, даже не будучи уверенным в том подберёт ли он вообще нужную последовательность, если можно того же результата добиться с помощью очень быстрого (практически мгновенного) случайного перемешивания (как советует
Bargest):
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
a: array[1..6]of Integer;
i, j, temp: Integer;
begin
for i := 1 to 6 do a[i] := i;
for i := 1 to 6 do
begin
j := Random(6) + 1;
temp := a[i];
a[i] := a[j];
a[j] := temp;
end;