Оптимизация генератора псевдослуч. чисел rand()

  • Автор темы gnu
  • Дата начала
Статус
Закрыто для дальнейших ответов.
G
#1
Пишу на СИ.

функцией rand генерирую числа вплоть до 2^32 - 1 -- RAND_MAX (это очень большое число), ненужные отбрасываю (циклом, пока не дойду до нужых, а нужные, это меньшие 50ти. Как эффективно мне их генерировать. А то уж очень дооолго. А нужно Ооочень эффективно, т.к. используется часто и много.
 
?

????

#2
Молодец :blink:
Как я понял, на Turbo C 3.X (2.X). Если так, то посмотри stdlib.h. Там есть вот такое:
Код:
int _Cdecl random(int __num)
        { return(int)(((long)rand()*__num)/(RAND_MAX+1)); }
Там же (в stdlib.h)
Код:
#define RAND_MAX 0x7FFFU
В справке по ТС есть пример

Код:
 int main(void)
{
  int i;

  printf("Ten random numbers from 0 to 99\n\n");
  for(i=0; i<10; i++)
   printf("%d\n", rand() % 100);
  return 0;
}
 
G

Guest_LeXXaT

#4
Если нужно генерить числа от 0 до N то пиши так:
rand()%(N+1) // операция остаток от деления
 
Статус
Закрыто для дальнейших ответов.