Xpoint
   [напомнить пароль]

Delphi: Сформировать массив на основе другого по правилу

Метки: [без меток]
2006-05-22 21:48:49 [обр] Superman(0/16)[досье]

Имеется массив population. Необходимо получить массив pairs, который того же типа что и population, но в нем элементы должны быть расфасованы случайно на основе массива population.
 
Пример:
population[0] = 1;
population[1] = 5;
population[2] = 153;
population[3] = 12;

    
pairs = getPairs(population);

 
pairs[0] = 5;
pairs[1] = 1;
pairs[2] = 153;
pairs[3] = 12;
 
Ф-ия getPairs вызывается в цикле, поэтому крайне важно чтобы массив pairs отличался от массива pairs на предыдущем шаге цикла.
 
Спасибо

спустя 1 минуту [обр] Superman(0/16)[досье]
В общем, вроде аналога ф-ии shuffle в PHP
спустя 10 минут [обр] Сергей Круглов(0/2057)[досье]
shuffle не гарантирует, что массив обязательно изменится.
спустя 12 минут [обр] Superman(0/16)[досье]

Да я забыл приписать, что "массив pairs чаще отличался от массива pairs на предыдущем шаге цикла"

Вот что было найдено:

x: array[0..n-1]

for i:=n downto 2 do
begin
   j:=random(i);
   t:=x[i-1];
   x[i-1]:=x[j];
   x[j]:=t;
end;
спустя 9 часов [обр] Владимир Палант(13/4445)[досье]
М Перенесено из форума "Прочее"
Powered by POEM™ Engine Copyright © 2002-2005