псевдослучайныЕ последовательностИ, мечта о нескольких Randomize |
псевдослучайныЕ последовательностИ, мечта о нескольких Randomize |
Lapp |
Сообщение
#1
|
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
Допустим, мне нужно несколько самостоятельных параллельных линий, использующих случайные числа. Как известно, для отладки желательно не отрабатывать процедуру Randomize - тогда мы имеем повторяемость последовательности случайных чисел, выдаваемых функцией Random. "Сбить" такую последовательность можно, например, пропуском нескольких чисел. Вопрос же состоит в следующем: могу ли я (в отладочных целях или еще по какой причине) получить в одном процессе повторяемую последовательность, а в другом - нет?
-------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
volvo |
Сообщение
#2
|
Гость |
Можешь попробовать. Исходники функции Random найти проще простого - они лежат в \fpc-2.2.4.source\fpc-2.2.4\rtl\inc\system.inc (у меня исходники для предыдущей версии, лень перекачивать, не так уж много там и изменилось), подкорректируй эту функцию так, чтобы она использовала не одну и ту же переменную RandSeed, а несколько (для каждой необходимой тебе "линии" - своя "затравка").
Кстати, "линия" - это ты о чем? Если о потоках - то вот это: Embarcadero QC -> #4368 может быть тебе интересно. Тут фактически готовое решение. |
Текстовая версия | 21.05.2024 11:56 |