C++生成随机数的两种方法

在C++中,‌产生随机数的方法主要有两种:‌使用<cstdlib>库中的rand()函数和使用<random>库中的随机数生成器和分布类。‌

  1. 使用<cstdlib>:‌

    • rand()函数可以生成一个0到RAND_MAX之间的随机数,‌其中RAND_MAX是一个与系统相关的常量,‌表示rand()函数能返回的最大随机数值。‌例如,‌在Linux系统中,‌RAND_MAX可能达到2147483647,‌而在Windows系统中可能只有32767。‌
    • 为了获得更好的随机性,‌可以使用srand()函数来设置随机数种子。‌通常,‌通过当前时间(‌通过time(NULL)获取)‌来设置种子是一个常见的做法,‌因为这样可以确保每次程序运行时都能得到不同的随机数序列。‌例如:‌
     

    cppCopy Code

    #include <cstdlib> #include <ctime> int main() { srand(time(NULL)); // 设置随机数种子为当前时间 int random_number = rand(); // 生成随机数 std::cout << "Random Number: " << random_number << std::endl; return 0; }

  2. 使用<random>:‌

    • <random>库提供了更高级和灵活的随机数生成方法,‌包括默认随机数引擎default_random_engine和高品质的伪随机数生成器如梅森旋转算法(‌MT)‌生成器mt19937等。‌
    • 使用uniform_int_distribution<int>可以生成指定范围内的均匀分布的整数随机数。‌例如:‌
     

    cppCopy Code

    #include <random> int main() { std::default_random_engine engine; // 创建一个默认随机数引擎 std::uniform_int_distribution<int> dist(1, 100); // 创建一个在[1, 100]范围内产生整数的均匀分布 int result = dist(engine); // 产生一个随机整数 std::cout << "Random Number: " << result << std::endl; return 0; }

这两种方法各有优势,‌<cstdlib>库的方法简单易用,‌但在需要更高质量的随机数时,‌推荐使用<random>库,‌它提供了更多的控制和灵活性,‌包括支持更多种类的随机数分布和更高级的随机数引擎

相关推荐

  1. C++生成随机数方法

    2024-07-22 18:08:03       21 阅读
  2. 【Python】常见生成随机数方法

    2024-07-22 18:08:03       27 阅读
  3. C++ 实现Python 列表list 方法

    2024-07-22 18:08:03       30 阅读
  4. C:获取文件大小方式

    2024-07-22 18:08:03       31 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-22 18:08:03       101 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-22 18:08:03       109 阅读
  3. 在Django里面运行非项目文件

    2024-07-22 18:08:03       87 阅读
  4. Python语言-面向对象

    2024-07-22 18:08:03       96 阅读

热门阅读

  1. Blazor Webassembly多标签页实现非iframe的实现

    2024-07-22 18:08:03       26 阅读
  2. Lianwei 安全周报|2024.07.22

    2024-07-22 18:08:03       31 阅读
  3. js弹出对话框

    2024-07-22 18:08:03       22 阅读
  4. 优先级策略:在Eureka中配置服务实例优先级

    2024-07-22 18:08:03       26 阅读
  5. L298N的输出电流与电压

    2024-07-22 18:08:03       23 阅读
  6. 基于vite + pnpm monorepo 实现一个UI组件库

    2024-07-22 18:08:03       25 阅读
  7. sqlserver15(2019)修改参数READ_COMMITTED_SNAPSHOT

    2024-07-22 18:08:03       22 阅读
  8. 黑龙江网络安全等级保护测评策略概述

    2024-07-22 18:08:03       18 阅读
  9. Hi3751V351常用命令

    2024-07-22 18:08:03       20 阅读
  10. 鸿蒙笔记--存储

    2024-07-22 18:08:03       20 阅读