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

Тема в разделе "Общие вопросы по С и С++", создана пользователем gnu, 7 дек 2003.

Статус темы:
Закрыта.
  1. gnu

    gnu Гость

    Пишу на СИ.

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

    ???? Гость

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

    Код (Text):
     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;
    }
     
  3. gnu

    gnu Гость

    ????
    Спасибо. Выручил :blink:
     
  4. Guest_LeXXaT

    Guest_LeXXaT Гость

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

Поделиться этой страницей