21xrx.com
2024-11-08 23:26:58 Friday
登录
文章检索 我的文章 写文章
如何使用c++的rand()函数?
2023-06-27 13:14:17 深夜i     --     --
c++ rand()函数 使用方法

C++中的rand()函数是一种随机数生成器,可以生成一个0到RAND_MAX(通常是32767)之间的整数。如果我们想要生成更大的随机数,需要使用一些特殊技巧。

下面是一些简单的例子,演示如何使用C++的rand()函数来生成随机数。

1. 生成10个随机数


#include <iostream>

#include <ctime>

using namespace std;

int main() {

  srand(time(0));

  for (int i = 0; i < 10; i++) {

    cout << rand() << endl;

  }

  return 0;

}

上面的代码会生成10个随机数,其中“srand(time(0))”用于设置种子。如果不设置种子,那么每次生成的随机数都是一样的。

2.生成指定范围内的随机数

如果我们需要生成指定范围内的随机数,可以使用模运算。

例如,我们要生成1到100之间的整数:


#include <iostream>

#include <ctime>

using namespace std;

int main() {

  srand(time(0));

  for (int i = 0; i < 10; i++) {

    int randomNumber = rand() % 100 + 1;

    cout << randomNumber << endl;

  }

  return 0;

}

对于上面的代码,rand() % 100可以生成0到99之间的随机数,再加上1,就可以生成1到100之间的整数。

3.多个范围内的随机数生成

如果我们需要生成多个范围内的随机数,可以根据需要进行多次模运算。例如,我们要生成1到10和20到30之间的随机数:


#include <iostream>

#include <ctime>

using namespace std;

int main() {

  srand(time(0));

  for (int i = 0; i < 10; i++) {

    int randomNumber = rand() % 10 + 1;

    if (i % 2 == 0) {

      randomNumber += 20;

    }

    cout << randomNumber << endl;

  }

  return 0;

}

对于上面的代码,我们可以先生成1到10之间的随机数,然后根据需要增加20,生成20到30之间的随机数。

4.产生更大的随机数

C++标准库中提供了一些更高质量的随机数生成器,如Mersenne Twister。可以使用mt19937和uniform_int_distribution来生成更大的随机数。例如,我们要生成1到1000之间的整数:


#include <iostream>

#include <random>

using namespace std;

int main() {

  random_device rd;

  mt19937 generator(rd());

  uniform_int_distribution<int> distribution(1, 1000);

  for (int i = 0; i < 10; i++) {

    cout << distribution(generator) << endl;

  }

  return 0;

}

上面的代码使用了一个更高质量的随机数生成器,可以生成更大的随机数。uniform_int_distribution用于生成整数,使用了rd()作为种子。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复