首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >需要生成100到500之间的随机数

需要生成100到500之间的随机数
EN

Stack Overflow用户
提问于 2017-07-18 23:17:59
回答 2查看 5.5K关注 0票数 1

在我的课堂作业中,我必须生成120个随机数,从100到500不等。这是我现在使用的代码。

下面是输出的剪切和粘贴:我预期数字在100到500之间。我不知道我做错了什么。我没有得到想要的结果。我怎样才能从100到500得到号码呢?

跑-10跑-9跑-9人跑-8人跑-7人跑-6人跑-6人跑-5人跑-4人跑-2人跑-1人跑1人跑1人跑1人跑2人3人3人5人6人7人7人8人9人9人9人

代码语言:javascript
复制
void create_random_numbers(int ran[], int x) 
{
    unsigned seed = time(0);

    srand(seed);
    int random_integer;
    for (int index = 0; index<400; index++)
    {

    //  cout << random_integer << endl<<endl;
        ran[index] =  (rand()%500)+100;

        cout << "ran "<< ran[index] << endl << endl;
    }

}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-18 23:32:25

rand() % 500[ 0...499 ]包含的范围内生成值,因此100 + [ 0 ... 499 ]生成[ 100... 599 ]包含的值。你需要rand() % 400 + 100

请查看下面的更正代码:

代码语言:javascript
复制
void create_random_numbers(int ran[]) 
{
    unsigned seed = time(0);

    srand(seed);
    int random_integer;
    for (int index = 0; index < 120; index++)
    {
        ran[index] =  (rand() % 400) + 100;
        cout << index << " : " << ran[index] << endl << endl;
    }
}

查看我所做的演示:演示

票数 0
EN

Stack Overflow用户

发布于 2017-07-19 00:47:35

另一种方法是使用均匀的int分布产生随机整数值i,在闭区间a,b上均匀分布,即按离散概率分布。

代码语言:javascript
复制
function
P(i|a,b) = 1/(b − a + 1)
.
#include <random>
#include <iostream>
#include <array>

int main()
{
    std::array<int, 120> numbers;
    std::random_device rd;  //Will be used to obtain a seed for the 
                            //random number engine
    std::mt19937 gen(rd()); //Standard mersenne_twister_engine seeded 
                            // with rd()
    std::uniform_int_distribution<> dis(100, 500);

    for (int n = 0; n < 120; ++n)
        //Use dis to transform the random unsigned int generated by gen 
        //into an int in [100, 500]
        numbers[n] = dis(gen);

    for (auto i : numbers) {
        std::cout << ' ' << i;
    }
    std::cout << '\n';
    return 0;
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45178577

复制
相关文章

相似问题

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