Dev C++ 随机数生成全攻略:`rand()`与`<random>`库实战及注意事项
在Dev C++中,可以使用C++标准库中的随机数生成函数来随机生成数。下面给出两个常用的随机数生成示例,一个是使用传统的`rand()`和`srand()`函数,另一个是使用C++11引入的`<random>`库。 使用`rand()`和`srand()`函数 ```cpp #include <iostream> #include <cstdlib> // 包含rand()和srand()函数 #include <ctime> // 包含time()函数 int main() { // 使用当前时间作为随机数种子 srand(static_cast<unsigned int>(time(nullptr))); // 生成一个0到99之间的随机整数 int randomNumber = rand() % 100; std::cout << "生成的随机数是: " << randomNumber << std::endl; return 0; } ``` 代码解释: - `srand()`函数用于设置随机数种子,`time(nullptr)`返回当前时间的秒数,将其转换为`unsigned int`类型作为种子。 - `rand()`函数用于生成一个伪随机整数,`rand() % 100`可以将生成的随机数限制在0到99的范围内。 使用C++11的`<random>`库 ```cpp #include <iostream> #include <random> // 包含C++11的随机数库 int main() { // 创建一个随机数引擎 std::random_device rd; std::mt19937 gen(rd()); // 创建一个分布,这里是生成0到99之间的均匀分布 std::uniform_int_distribution<> dis(0, 99); // 生成随机数 int randomNumber = dis(gen); std::cout << "生成的随机数是: " << randomNumber << std::endl; return 0; } ``` 代码解释: - `std::random_device`用于获取一个真随机数作为种子。 - `std::mt19937`是一个常用的随机数引擎。 - `std::uniform_int_distribution`用于定义一个整数的均匀分布,这里是0到99的范围。 - `dis(gen)`通过分布和引擎生成随机数。 我在以往的开发过程中,碰到过以下几点需要格外小心处理的地方: 1. 使用`rand()`和`srand()`时,如果不设置随机数种子,每次运行程序生成的随机数序列都是相同的。 2. `<random>`库是C++11引入的,如果使用较旧的编译器可能不支持。 3. 在使用随机数进行范围限制时,要注意取模运算可能会导致分布不均匀。 ######[AI写代码神器 | 611点数解答 | 2025-10-26 18:31:47]
- 代码填空挑战:完成正态分布、随机数生成及数据处理代码(阿里通义 | 506点数解答 | 2025-03-23 14:32:14)325
- 挑战!完成代码填空解锁数据处理奥秘(字节豆包 | 116点数解答 | 2025-03-26 22:22:15)340
- 挑战填空!完成这段 NumPy 代码实现数据生成与保存(DeepSeek | 178点数解答 | 2025-03-26 22:26:30)404
- 优化代码:Clarke - Wright与遗传算法解决车辆路径规划,严格把控容量逻辑(字节豆包 | 1530点数解答 | 2025-06-11 02:45:18)185
- 趣味捕鱼小程序:从代码看如何计算捕捞总得分!(讯飞星火 | 88点数解答 | 2024-05-29 23:52:23)535
- 代码优化:提升“生命值监控模块”代码的健壮性与性能 (阿里通义 | 721点数解答 | 2024-10-19 15:16:56)301
- Python模拟蒙提霍尔问题:改变选择真能大幅提高获胜概率?(讯飞星火 | 753点数解答 | 2024-11-27 19:14:10)201
- Python:生成含随机缺失值二维数组并处理,附随机选元素赋缺失值代码解析(阿里通义 | 300点数解答 | 2025-03-13 20:19:30)219
- 补全代码:从模拟数据生成到可视化分析广告投入与销售额关系(阿里通义 | 939点数解答 | 2025-05-26 23:04:07)207
- 修正代码实现“3D爱心粒子跳动”,附运行错误及逻辑注意点(字节豆包 | 1111点数解答 | 2025-07-28 22:34:46)160
- Python 实现 3D 爱心粒子跳动特效:代码解析与注意要点(字节豆包 | 1142点数解答 | 2025-07-28 22:36:37)158
- 用 C++ 和 OpenCV 生成带随机偏移的圆周上的点:代码剖析(字节豆包 | 29点数解答 | 2024-11-06 23:40:42)263