|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Alex Astafiev 2:5000/228.16 26 Dec 2001 19:24:22 To : Valery Malyh Subject : Случайные числа --------------------------------------------------------------------------------
DG>> Подскажите плиз, толковый алгоритм генератора сабжа.
VM>
VM> Самый толковый, пожалуй, будет с исп. сист. времени, так как оно
VM> никогда не повторяется, а что конкретно с ним сделать думай сам.
VM> Можно, даже просто умножить на кокое-нибудь ч-ло. Будет, тогда еще и
VM> самый простой :)
бестолково. счетчик != гсч.
если подумать, сам поймешь почему. ;)
вычисляй следущее число как mod(ткущее * K) + A
этолинейный конгруэнтный генератор по Кнуту.
K,A удовлетворяют K mod 4 = нечетное, A = нечетное.
(простейший случай K=5, A=1)
mod в формуле означает модульот умножения, то же самое, что получится если ты
сделаешь
{
unsigned short a,b;
a*=b;
}
при этом умножение будет работать, но "обрезаться по границе short, т.е. 16
бит".
--- Alex Raider / Flash inc.
* Origin: Alex Raider/ Flash inc. 1992-2001 (2:5000/228.16)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/174643c2a1775.html, оценка из 5, голосов 10
|