首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >random()函数只输出大数字

random()函数只输出大数字
EN

Stack Overflow用户
提问于 2014-02-22 07:05:55
回答 4查看 174关注 0票数 1

我正在使用random()函数,我想知道是否有什么原因使我总是得到8-10位数字。我只想确定我的程序没有什么问题。谢谢。

下面是函数:

代码语言:javascript
运行
复制
void random_array(int* p, int size) {
    /*seed random number generator */
    srandom(time(NULL));
    int i;
    for(i = 0; i < size; i++)
        *(p+i) = random();
}
EN

回答 4

Stack Overflow用户

发布于 2014-02-22 07:09:41

嗯,从数学上讲,你得到一个大数字的机会比得到一个(相对)小数字的机会大得多。例如,如果您选择一个具有(1-4)位数字的随机数,则它在(0-99)范围内的可能性仅为1%。

也就是说,如果你想要更小的数字,你可以取随机模某个确定的数字:

代码语言:javascript
运行
复制
a = random() % 100; // this will give you a random number from 0 to 99
b = 10 + random() % 15; // random number from 10 to 24
票数 4
EN

Stack Overflow用户

发布于 2014-02-22 07:11:37

8-10位数: 10,000,000,000 - 100,000,000 =9,900,000(99亿)

0-7位数字个数:1000万(1000万)

换句话说,每10-7位数字对应990个8-10位数字。因此,对于每990个8-10位数字,您可以期望得到大约1 0-7位数字。

简而言之,这是因为它们的数量更多。

票数 3
EN

Stack Overflow用户

发布于 2014-02-22 07:11:46

您希望从random()收到多大的数字

如果您想限制生成的数字的大小,只需使用模运算符将结果限制为余数(在下面的示例中为0到999之间的数字):

代码语言:javascript
运行
复制
*(p+i) = random() % 1000;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21946969

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档