C 语言随机数与随机数种子 详解

张开发
2026/4/19 0:50:30 15 分钟阅读

分享文章

C 语言随机数与随机数种子 详解
1. 前言C 语言中不存在真随机数我们使用的全部都是伪随机数通过固定数学算法计算生成。而随机数种子就是这套算法的初始起始值直接决定整串随机数结果。2. 相关头文件#include stdio.h #include stdlib.h // rand() srand() #include time.h // time() 时间种子3. 两个核心函数rand()生成一个随机整数srand(seed)设置随机数种子必须放在所有 rand () 之前调用4. 种子核心规律种子相同 → 多次运行程序随机序列完全不变种子不同 → 生成的随机数序列完全不同5. 固定种子调试专用#include stdio.h #include stdlib.h int main() { srand(123); // 固定种子 printf(%d, rand()); // 无论运行多少次结果永远一样 return 0; }6. 动态随机种子时间种子实战常用利用系统不断变化的时间作为种子实现每次运行结果都不同#include stdio.h #include stdlib.h #include time.h int main() { srand((unsigned)time(NULL)); printf(%d, rand()); return 0; }7. 自定义随机数范围公式rand() % 100→0 ~ 99rand() % 100 1→1 ~ 100通用公式rand() % n→ 0 ~ n-18. 高频易错考点srand()整个程序只调用一次严禁放在循环内部不写srand()系统默认固定种子每次随机结果一模一样固定种子多用于程序调试、结果复现时间种子必须强制强转unsigned类型

更多文章