Показать сообщение отдельно
  #5  
Старый 09.05.2014, 21:14
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от 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;
Ответить с цитированием