2015-04-18 6 views
5

Я хочу, чтобы генерировать большие случайные числа в c. Проблема в том, что наибольшее количество srand() может генерировать около 37000. Я хочу создать число в intervall 70000 до 2150000000. Может ли кто-нибудь помочь мне с этим.Создание больших чисел с помощью srand() в c

Генератор случайных чисел:

#include <stdio.h> 
#include <time.h> 
#include <stdlib.h> 

int main() 
{ 
    srand(time(NULL)); 
    int i; 

    for (i=0; i<50; i++) 
    { 
     int random = rand(); 
     printf("%d\n",random); 
    } 

    return 0; 
} 
+0

Вы сделали поиск, прежде чем спрашивать? Здесь много дубликатов http://stackoverflow.com/questions/28115724/getting-big-random-numbers-in-cc http://stackoverflow.com/questions/21418478/getting-random-numbers-larger- чем-rand-max http://stackoverflow.com/a/3665305/995714 –

ответ

4

Прежде всего, проверьте RAND_MAX для максимального значения, которые могут быть вызваны rand().

Вы можете составить два результата rand() в одно значение.

int random = (rand() << 16) | rand(); 
+0

Спасибо за помощь! – Isak