Привет Eugene! Пишет тебе Andrey!
Sat, 06 Jun 2009 18:12, Eugene Palenock => Andrey Troitsky:
AT>> Как можно попpоще и не используя стоpонних библиотек генеpить
AT>> случайные числа?
EP> А в каком диапазоне и как часто ?
EP> Hапример можно вставкой ассемблерной команды RDTSC - счётчик тактов
EP> CPU. Возвращает в регистрах EDX:EAX 64битное число тактов, для многих
EP> целей младшие несколько бит (регистра AL) вполне можно считать совсем
EP> случайным числом.
Хоpошая идея.
А ваpиантов оказывается моpе, пока взял такое, вот отpывки с
http://algolist.ru/maths/generator/fastest.php
----------------------------------------------------------------------
Самый быстрый генератор для 32-битового представления целых и действительных
чисел
В большинстве случаев, число типа unsigned long имеет 32 бита. В этом случае
для генерации числа в диапазоне 0 - 232-1 достаточно простого умножения на
мультипликатор и сложения с инкрементом. Деление по модулю будет произведено
автоматически при переполнении. Значения мультипликатора и инкремента для этого
случая получены в исследованиях D. Knuth и H.W. Lewis.
----------------------------------------------------------------------
static unsigned long iran;
unsigned long temp;
float fran;
unsigned long jflone=0x3f800000;
unsigned long jflmsk=0x007fffff;
iran=1664525L*iran+1013904223L;
temp=jflone|(jflmsk&iran);
fran=(*(float *)&temp)-1.F;
----------------------------------------------------------------------
Ну я вроде все сказал... Пока Eugene!