Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > рандом массива


Автор: Horus92 20.7.2010, 16:58
Здравствуйте, у меня есть динамический массив строк с количеством элементов от 1..n, n принимает значение не больше 10 .
Мне нужно вывести элементы массива в рандомном порядке без повторения элементов.

Автор: casinosoftguru 20.7.2010, 17:22
выбирай случайно любой элемент в пределах n.. затем удаляй его из массива и повторяй пока там не останется элементов
http://www.delphisources.ru/pages/faq/base/dyn_array_add_delete.html

Автор: x128 21.7.2010, 09:10
создай дополнительный массив индексов, заполни его значениями 1..n и перемешай рандомом, после чего извлекай строки по созданным индексам.

Автор: Snowy 21.7.2010, 10:26
Код
procedure Blend(var a: array of string);
var
  i, n, x: integer;
  s: string;
begin
  Randomize;
  n := Length(a);
  for i := 0 to n - 1 do
  begin
    x := Random(n);
    s := a[x];
    a[x] := a[i];
    a[i] := s;
  end;
end;

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)