C语言生成不重复伪随机数的代码示例
5星 · 超过95%的资源 201 浏览量
更新于2024-09-01
收藏 61KB PDF 举报
"C语言生成随机数的示例代码分享,包含一个不重复产生随机数的程序,使用了srand()和rand()函数,以及逻辑判断确保随机数的唯一性。"
在C语言中,生成随机数是编程时常见的需求,特别是在模拟、游戏或测试等领域。`rand()`函数是C标准库中的一个功能,它用于生成一个伪随机数。这里的“伪随机”意味着生成的序列看起来是随机的,但实际上遵循一定的可预测模式。`rand()`函数返回的随机数范围通常是从0到`RAND_MAX`之间的一个整数,具体的`RAND_MAX`值依赖于实现。
为了使`rand()`生成的随机数序列每次运行程序时都不相同,我们可以使用`srand()`函数来设置随机数生成器的种子。在上面的示例中,`srand((unsigned)time(NULL))`使用当前时间作为种子,因为时间通常是不可预测的,这样可以确保每次程序运行时得到不同的随机数序列。
代码的核心部分在于生成不重复的随机数。首先,使用`rand()%41+1`生成1到40之间的随机数,避免生成8和36(可能有特殊用途)。然后通过一个`do-while`循环检查生成的数字是否已经出现过或者等于8或36,如果满足这些条件,就继续生成新的随机数。`flag`变量用于标记是否找到了一个新的、可用的随机数,如果找到,则将其存储在数组`a`中。
在主循环中,用户可以输入一个最大值(1到39之间),程序会生成这个数量的不同随机数并显示出来。如果用户输入的不是'q',程序会提示重新输入,否则程序结束。使用`goto`语句在这里是为了简化流程控制,虽然在某些情况下`goto`语句被认为是不良编程习惯,但在这种小型示例中,它的使用是可以接受的。
总结来说,这个C语言示例提供了生成不重复随机数的方法,使用了标准库中的`rand()`和`srand()`函数,并结合逻辑判断实现了特定需求。理解这段代码有助于掌握C语言中如何生成和处理随机数,以及如何实现特定条件下的逻辑控制。
2014-08-06 上传
2022-05-20 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
2023-06-01 上传
weixin_38502929
- 粉丝: 7
- 资源: 959
最新资源
- Earth-satellite design_satellite_optisystem_光通信_自由光通信_Optisystem
- TwoMbit:主系统,游戏装备,sg-1000仿真-开源
- STM32H7R实现lwIP NETCONN-UDP实验【支持STM32H7R系列】
- AboutCode-3.0.0.dev2-py2.py3-none-any.whl.zip
- 1.7890393101789E+19,小波降噪matlab源码,matlab源码网站
- nitpick:NuPIC 的可视化库
- Learn-how-to-control-robots-using-Javascript-through-Cylon.js:关于javascript和CylonJS的研讨会
- fundMeATesla-源码.rar
- lorenz MATLAB,matlab源码字母,matlab源码下载
- 基于SpringMVC+jsp网上选课系统.zip
- pg-beershop:带有PostgreSQLCAP Beershop
- eclipse安装MyBatipse
- today:今天对于Trello
- Cloudmersive.APIClient.NodeJS.Example:将NodeJS客户端用于Cloudmersive API的示例
- constrained-extreme-learning-machine-master_回归_黄广斌主页_machinelear
- tadl-list-gallery:用于显示项目列表的 Wordpress 插件