• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

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

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

gnu

Пишу на СИ.

функцией rand генерирую числа вплоть до 2^32 - 1 -- RAND_MAX (это очень большое число), ненужные отбрасываю (циклом, пока не дойду до нужых, а нужные, это меньшие 50ти. Как эффективно мне их генерировать. А то уж очень дооолго. А нужно Ооочень эффективно, т.к. используется часто и много.
 
Молодец :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;
}
 
Если нужно генерить числа от 0 до N то пиши так:
rand()%(N+1) // операция остаток от деления
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab