Re[2]: обход чисел в хаотичной последовательности
От: PaulMinelly  
Дата: 05.05.08 11:21
Оценка:
Здравствуйте, TheBeard, Вы писали:

TB>Здравствуйте, Аноним, Вы писали:


А>>есть большое число 2^48, нужно получить всё множество его значений,

А>>но не последовательно (как циклом for (i=0; i<2^48; i++...)),
А>>а в хаотичной последовательности, как это можно сделать?

TB>Например, использовать линейный конгруэнтный генератор псевдослучайных чисел с модулем 2^48.


Так не получится так как будут дубликаты. Это классическая задача тасования чисел
Есть линейный O(n) алгоритм генерации случайной последовательности K из интервала [1;N] без проверки на дубликаты. У Кнута есть доказательство суммы вероятностей. Алгоритм простецкий, на строк на 6.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.