当前位置:首页 C++ > 正文

c++中生成100以内的随机数

作者:野牛程序员:2023-07-03 16:20:21 C++阅读 3623

要在C++中生成100以内的随机数,您可以使用 <random> 头文件中的随机数生成器。以下是一个生成100以内随机数的示例代码:

#include <iostream>
#include <random>

int main() {
    // 使用随机设备作为种子
    std::random_device rd;
    
    // 使用 Mersenne Twister 引擎
    std::mt19937 rng(rd());
    
    // 指定随机数范围为 [0, 99]
    std::uniform_int_distribution<int> uni(0, 99);
    
    // 生成随机数
    int randomNumber = uni(rng);
    
    // 输出随机数
    std::cout << "随机数: " << randomNumber << std::endl;
    
    return 0;
}

这段代码首先使用 random_device 来获取一个随机设备的种子。然后,使用 Mersenne Twister 引擎 mt19937 创建一个随机数生成器 rng,并将随机设备的种子传递给它。接下来,使用 uniform_int_distribution 来指定随机数的范围为0到99。最后,调用 uni(rng) 生成一个随机数,将其存储在 randomNumber 中,并输出到控制台上。

这可以根据需要调整范围和生成多个随机数。请注意,每次运行程序时都会生成不同的随机数。


还有其他方法可以在C++中生成100以内的随机数。一种方法是使用 <cstdlib> 头文件中的 rand() 函数和取模运算符 %。以下是一个使用这种方法的示例代码:

#include <iostream>
#include <cstdlib>
#include <ctime>

int main() {
    // 设置种子为当前时间
    std::srand(static_cast<unsigned int>(std::time(nullptr)));
    
    // 生成随机数
    int randomNumber = std::rand() % 100;
    
    // 输出随机数
    std::cout << "随机数: " << randomNumber << std::endl;
    
    return 0;
}

这段代码首先使用 std::time(nullptr) 获取当前时间作为种子,并将其传递给 std::srand() 函数来初始化随机数生成器。然后,使用 std::rand() 生成一个随机数,并使用 % 运算符将其限制在0到99的范围内。最后,将随机数输出到控制台上。

请注意,这种方法的随机性可能不如使用 <random> 头文件中的方法,而且需要在程序开始时调用 std::srand() 来设置种子。因此,如果需要更好的随机性和更大的灵活性,推荐使用 <random> 头文件中的方法。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击