如何在一定数量之间生成随机数量的数字?

时间:2016-07-07 19:49:04

标签: c++

我需要在10到15之间生成一个随机数量的数字。另外,我需要将这些随机数设置在20到50之间。我已经完成了第二部分,我想,我只是不知道该怎么做放入我的if语句条件。谁知道?到目前为止,这是我的代码:

#include <iostream>
#include <time.h>
#include <stdlib.h>
using namespace std;
int main()
{
srand((unsigned)time(0));
int random_integer; // Stores random number between 20 and 50
int random_set; // Stores random amount of numbers
for(){ //
    random_integer = 20 + rand()%25; // Random number between 20 and 50

    cout <<"Generating " << random_set << "random numbers" << random_set " (is a random number between 10 to 15).";
    cout << random_integer <<", ";
    }

    return 0;
}

3 个答案:

答案 0 :(得分:1)

虽然其他答案已经介绍了如何使用tablayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { @Override public void onTabSelected(TabLayout.Tab tab) { viewpager.setCurrentItem(tab.getPosition()); } @Override public void onTabUnselected(TabLayout.Tab tab) { } @Override public void onTabReselected(TabLayout.Tab tab) { } }); 执行此操作,但是在C ++中生成随机数的更好(和正确)方法(假设您有一个C ++ 11或更高版本的编译器,您应该拥有)是通过rand()标题。

以下是在给定范围内生成随机<random>的方法:

int

当然,您也可以通过类似的代码将#include <random> #include <iostream> int main(void) { std::random_device rd; // seed for PRNG std::mt19937 mt_eng(rd()); // mersenne-twister engine initialised with seed const int range_min = 10; // min of random interval const int range_max = 15; // max of random interval // uniform distribution for generating random integers in given range std::uniform_int_distribution<> dist(range_min, range_max); const int n = 10; // number of random int's to generate // call dist(mt_eng) to generate a random int for (int i = 0; i < n; ++i) std::cout << dist(mt_eng) << ' '; } 的值随意地随机化。

答案 1 :(得分:0)

首先,这会生成20到45之间的数字(不包括):

random_integer = 20 + rand () % 25;

要解决此问题,请使用rand () % 30

  

我需要生成10到15之间的随机数字

然后生成一个介于10和15之间的随机数,并从0到该数字进行迭代(循环):

int n = 10 + rand () % 5;
int *numbers = new int[n]; //array that stores the random numbers
for (int i = 0; i < n; i++)
    numbers[i] = 20 + rand () % 30; //random number between 20 and 50

答案 2 :(得分:0)

关键是您的模数和您的起始号码。

// rand() % 5 + 10 has a range of 10 to 10+5 (15)
// rand() % 30 + 20 has a range of 20 to 20+30 (50)
int numberCount = rand() % 5 + 10;
for(int i = 0; i < numberCount; ++i)
{
    int randomNumber = rand() % 30 + 20;
    cout << randomNumber << endl;
}

如果您想要包容性,请使用6和31而不是5和30。