如何在c ++中生成5到25之间的随机数

时间:2011-11-18 16:34:23

标签: c++ random srand

  

可能重复:
  Generate Random numbers uniformly over entire range
  C++ random float

如何在c ++中生成5到25之间的随机数?

#include <iostream>
#include <cstdlib>
#include <time.h>

using namespace std;

void main() {

    int number;
    int randomNum;

    srand(time(NULL));

    randomNum = rand();

}

4 个答案:

答案 0 :(得分:11)

执行rand() % 20并将其递增5。

答案 1 :(得分:6)

在C ++ 11中:

#include <random>

std::default_random_engine re;
re.seed(time(NULL)); // or whatever seed
std::uniform_int_distribution<int> uni(5, 25); // 5-25 *inclusive*

int randomNum = uni(re);

或者它也可以是:

std::uniform_int_distribution<int> d5(1, 5); // 1-5 inclusive
int randomNum = d5(re) + d5(re) + d5(re) + d5(re) + d5(re);

会在同一范围内给出不同的分布。

答案 2 :(得分:2)

C ++方式:

#include <random>

typedef std::mt19937 rng_type; // pick your favourite (i.e. this one)
std::uniform_int_distribution<rng_type::result_type> udist(5, 25);

rng_type rng;

int main()
{
  // seed rng first!

  rng_type::result_type random_number = udist(rng);
}

答案 3 :(得分:0)

#include <cstdlib>
#include <time.h>

using namespace std;

void main() {

    int number;
    int randomNum;

    srand(time(NULL));

    number = rand() % 20;
cout << (number) << endl;

}