LINUX.ORG.RU

С: Как юзать рандомный генератор ?


0

0

srand+rand - это конечно хорошо, но не прсосить же юзера при запуске вводить случайное число зля зерна, как на МК-52, совесть иметь то надо...

И может кто-нибуть напомнить, какой формулай вычислять ранд в собственном диапазоне ?

anonymous

Надо брать реальные случайные данные, как миллисекунды, нагрев процессора, частота звука и т.д.

Selecter ★★★★
()

>И может кто-нибуть напомнить, какой формулай вычислять ранд в собственном диапазоне ?

В man rand вроде есть.

Selecter ★★★★
()
Ответ на: комментарий от anonymous

Типа того:


#define RANDOMDEV "/dev/urandom"

char buf[512];
unsigned long seed;
int fd = fopen(RANDOMDEV, O_RDONLY);
if (fd<0)
  errx(1, "fuck off.");
(void)read(fd, buf, sizeof(buf));
seed = strtoul(buf, NULL, 10);
srand(seed);

anonymous
()
Ответ на: комментарий от grustnoe



>бери из time()
или
time()*getpid().

и если случайные числа нужны для чего-то серьёзного, ОБЯЗАТЕЛьНО читать Numerical Recipes, chapter 7:
http://www.library.cornell.edu/nr/bookcpdf.html
Там описаны несколько алгоритмов, как правильно использовать случайные числа, и, что самое главное, как их НЕ исползовать

phrm ★★
()
Ответ на: комментарий от grustnoe

> бери из time()

Ну лично мне это не грозит ;)

У меня есть srandom, rand48 и arc4random ;))

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.