2015-04-18 26 views
5

Büyük rasgele sayıları c cinsinden sıralamak istiyorum c. Sorun, srand() 'ın üretebileceği en büyük sayının yaklaşık 37000 olmasıdır. 70000 ila 2150000000 arası bir sayı oluşturmak istiyorum. Bu konuda bana yardımcı olabilecek herhangi biri olabilir.Büyük sayıları srand() ile girin c

Rastgele sayı üreteci: Herşeyden

#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

Sormadan önce arama yaptınız mı? Burada bir çok kopya var. Http://stackoverflow.com/questions/28115724/getting-big-random-numbers-in-cc http://stackoverflow.com/questions/21418478/getting-random-numbers-larger- -rand-max'dan http://stackoverflow.com/a/3665305/995714 –

cevap

4

Öncelikle rand() tarafından üretilen maksimum değeri RAND_MAX kontrol edin.

İki rand() sonucu bir değerde oluşturabilirsiniz.

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

Yardımlarınız için teşekkürler! – Isak