Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.06.26;
Скачать: CL | DM;

Вниз

Генерация случайных чисел без повторов   Найти похожие ветки 

 
Aiax   (2003-06-09 12:45) [0]

Надо сгенерить миллион 6-значных чисел без повторов. Как это сделать оптимально - пока не знаю. Пробовал каждое вновь создаваемое число сравнивать со всеми предыдущими и пересоздавать его при повторе - но это процесс дико медленный и на моём компе генерация идет минут 30. Подскажите как это сделать быстрее и гарантировано избежать повторений. Заранее спасибо.


 
DmS   (2003-06-09 12:49) [1]

был уже такой вопрос как-то ...

смысл в том, что тебе надо перемешать массив чисел идущих по порядку (например по возрастанию - этообеспечит уникальность). перемешиваешь так - просто меняешь местами i-ый и j-ый элементы (i, j - случайные числа).



 
Aiax   (2003-06-09 13:00) [2]

Был бы благодарен за фрагментик кода, который сгенерит мне уникальную последовательность, потому что если честно идею DmS не понял


 
DmS   (2003-06-09 13:04) [3]

a : array [1..1000] of integer;

for i:=1 to 1000 do a[i]:=1 000 000 + i;
Randomize;


for i:=1 to 1000 do begin
newPos := Random (1000);
tmpA:= a[newPos];
a[newPos]:=a[i];
a[i]:=tmpA;
end;


код на скорую руку :)


 
Aiax   (2003-06-09 13:19) [4]

Хе, код увидел - сразу дошло :) Действительно просто и надежно! Пасибки большое DmS



Страницы: 1 вся ветка

Текущий архив: 2003.06.26;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.018 c
1-84345
Кен
2003-06-09 05:37
2003.06.26
Что изменить в Дельфи, чтобы она сохраняла формы в dfm-файлы


7-84794
Демонов Е.В.
2003-04-18 09:15
2003.06.26
Дата Соэдания каталога


14-84586
DMN
2003-06-09 01:35
2003.06.26
Дозвон?


1-84066
Dr. Andrew
2003-06-07 13:30
2003.06.26
Где ошибка при завершении Hook и как занести данные в TPoint?


4-84832
Airdriver
2003-04-25 07:28
2003.06.26
Работа с компонентами окна другой программы