MST

星途 面试题库

面试题:C++ 中生成特定范围随机整数的实现

在C++ 中,要求编写一个函数,该函数能够生成 [a, b] 范围内的随机整数,a 和 b 作为函数参数传入。请使用标准库的随机数相关函数来实现,并说明使用这些函数的优点。
26.7万 热度难度
编程语言C++

知识考点

AI 面试

面试题答案

一键面试
#include <iostream>
#include <random>

int generateRandomInt(int a, int b) {
    static std::random_device rd;
    static std::mt19937 gen(rd());
    std::uniform_int_distribution<> dis(a, b);
    return dis(gen);
}

使用标准库随机数相关函数的优点:

  • 高质量随机数std::random_device 通常基于硬件熵源,能提供高质量的随机数种子,std::mt19937 是一种高效的伪随机数生成器,具有良好的统计特性,生成的随机数序列更均匀、更难以预测。
  • 可移植性:标准库的随机数函数在不同平台上都有统一的实现,编写的代码可以在不同的编译器和操作系统上使用,无需针对特定平台进行调整。
  • 灵活性:通过不同的分布类(如 std::uniform_int_distribution),可以方便地生成符合各种分布要求的随机数,满足不同场景的需求。