| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> 【C语言】随机数设置三板斧(保姆级教程) -> 正文阅读 |
|
[C++知识库]【C语言】随机数设置三板斧(保姆级教程) |
?目录 前言:
随机数设置三板斧:在设置随机数的时候,我们需要用到三个函数,它们分别是rand,time,srand。下面将一一进行讲解: 第一式:rand函数我们可以打开MSDN去看看rand函数的定义:
? ? 下面我们可以写一段代码生成10个随机数并将它打印出来:
?我们可以运行看看,可以得到10个随机数字: ?但是细心的小伙伴就发现了(记得自己敲代码观察结果,由于本人不会做动图,就麻烦各位佬自己敲代码看了),好像每次运行代码生成的10个随机数都是一样的。那是因为我们没有设置随机数种子,下面我们将讲解如何设置随机数种子: 第二式:srand函数再次打开MSDN,查看我们的srand函数的定义: ?
下面我们将设置一个随即数种子再次生成10个随机数:
好了,这次我们设置了一个随机数种子,这下应该不会出问题了吧。我们再次运行我们的代码: ?细心的朋友又又又会发现了,这次怎么还是不管运行多少次代码,结果还是一样的呀,作者你这不坑人嘛!各位佬请冷静,当srand函数中的参数是一个变化的数的时候我们才会生成真正的随机数(就像你遇到一个路口,每次你都进入同一个路口,那尽头不都是一样的嘛,只有当你选择不同的路口进入的时候终点才不一样)。那这个时候又有小伙伴要说话了,作者你拿我寻开心呢?你说要生成一个随机数,这里你用srand又要用一个变化的参数,这不两头难嘛? xdm别急。不妨想想在我们的计算机中什么是变化的?那不就是时间嘛?时间可是无时无刻不在改变。
这里就要讲到我们的time函数了 第三式:time函数这里我们先讲讲时间戳:
再次查看time函数的定义:(ps:C语言中的time函数调用后会返回一个时间戳)
?那么现在我们就可以解决刚刚的问题了,我们修改一下代码,再次运行。
现在我们运行程序的话就会发现,随机数生成成功了。 常见问题:1、每次进入程序后的随机数与上一次相同。
2、当随机数设置过快时,可能会相同。
例如:
我们运行一下程序: ?所以,我们在设置随机数的时候一定要检查是否只设置了一个随机数。 3、如何设置指定范围的随机数。 在设置随机数的时候,如果我们想要生成的随机数在一定范围内,那么我们就要对随机数进行一点小小的处理: 如果想要生成的随机数落在(0,n)
随机数落在(1,n)
随机数可以根据我们的需要进行设置,希望各位小伙伴能够灵活运用,今天的分享就到这里了,希望我的文章能够帮助到大家。要是有什么不对的地方也请各位指正。目前文章可能排版不是很好,但是我会努力的,希望自己的文章能够越写越好。祝各位水平越来越高,都能拿到好offer。 |
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年2日历 | -2025/2/27 2:52:41- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |