用c中的srand()生成大数字

Isa*_*sak 5 c random srand

我想在c中生成大的随机数.问题是srand()可以产生的最大数量大约是37000.我想在intervall 70000中创建一个数字到2150000000.任何人都可以帮我解决这个问题.

随机数发生器:

#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;
}
Run Code Online (Sandbox Code Playgroud)

tim*_*rau 4

首先,检查RAND_MAX可以生成的最大值rand()

您可以将两个rand()结果组合成一个值。

int random = (rand() << 16) | rand();
Run Code Online (Sandbox Code Playgroud)