C语言如何产生随机数
1.基本函数
在C语言中取随机数所需要的函数是:
int rand(void); void srand(unsigned int n);
rand()函数和srand()函数被声明在头文件stdlib.h中,所以要使用这两个函数必须包含该头文件: #include<stdlib.h>
2.使用方法
rand()函数返回0到RAND_MAX之间的伪随机数(pseudorandom)。RAND_MAX常量被定义在stdlib.h头文件中。其值等于32767,或者更大。
srand()函数使用自变量n作为种子,用来初始化随机数产生器。只要把相同的种子传入srand(),然后调用rand()时,就会产生相同的随机数序列。因此,我们可以把时间作为srand()函数的种子,就可以避免重复的发生。如果,调用rand()之前没有先调用srand(),就和事先调用srand(1)所产生的结果一样。
for (int i=0; i<10; i++) {printf("%d ", rand()%10); }
每次运行都将输出:1 7 4 0 9 4 8 8 2 4
srand(1); for (int i=0; i<10; i++) {printf("%d ", rand()%10); }
每次运行都将输出:1 7 4 0 9 4 8 8 2 4
例2的输出结果与例1是完全一样的。
srand(8); for (int i=0; i<10; i++) {printf("%d ", rand()%10); }
每次运行都将输出:4 0 1 3 5 3 7 7 1 5
该程序取得的随机值也是在[0,10)之间,与srand(1)所取得的值不同,但是每次运行程序的结果都相同。
srand((unsigned)time(NULL)); for (int i=0; i<10; i++) {printf("%d ", rand()%10); }
因为每次启动程序的时间都不同。另外需要注意的是,使用time()函数前必须包含头文件time.h。
3. 注意事项
求一定范围内的随机数。 如要取[0,10)之间的随机整数,需将rand()的返回值与10求模。
randnumber = rand() % 10;
那么,如果取的值不是从0开始呢?你只需要记住一个通用的公式。要取[a,b)之间的随机整数(包括a,但不包括b),
使用: (rand()% (b - a)) + a
伪随机浮点数。 要取得0~1之间的浮点数,可以用:
rand()/ (double)(RAND_MAX)
如果想取更大范围的随机浮点数,比如0~100,可以采用如下方法:
rand()/((double)(RAND_MAX)/100)
其他情况,以此类推,这里不作详细说明。当然,本文取伪随机浮点数的方法只是用来说明函数的使用办法,你可以采用更好的方法来实现。
转载于:https://www.cnblogs.com/cpoint/p/3367361.html
C语言如何产生随机数相关推荐
- c语言输出字母随机数,你好,怎样用c语言输出一个1到100的随机数
你好,怎样用c语言输出一个1到100的随机数以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 你好,怎样用c语言输出一个1 ...
- c语言中有关随机数的程序,C语言中随机数相关问题
用C语言产生随机数重要用到rand函数.srand函数.及宏RAND_MAX(32767),它们均在stdlib.h中进行了声明. int rand(void);//生成一个随机数 voidsrand ...
- C语言:生成随机数(并非固定的随机数)——rand()、srand()
C语言:生成随机数 1.rand() 函数 2.srand() 函数 3.生成一定范围内的随机数 在实际编程中,我们经常需要生成随机数. 1.rand() 函数 在C语言中,我们一般使用 <st ...
- *C语言如何使用随机数?
C语言如何使用随机数? 功能介绍 推送一些C语言方面的知识,提供C语言/C++语言资料,讨论和学习C语言/C++编程知识.给学习C语言的同学们一些帮助. 随机数的使用,是不少在学C语言过程中进行一些小 ...
- C语言中生成随机数函数
文章目录 前言 一.产生随机数 二.具体分析 1.rand函数 (1)范围 (2)对应头文件 2.srand函数 3.整合 总结 前言 本文主要详细介绍如何在C语言中生成随机数. 一.产生随机数 我们 ...
- c分布 的程序设计语言,#2020学习打卡##C程序设计语言# C语言中的随机数函数解析...
在计算机中并没有一个真正的随机数发生器,但是可以做到使产生的数字重复率很低,这样看起来好象是真正的随机数,实现这一功能的程序叫伪随机数发生器. 有关如何产生随机数的理论有许多,如果要详细地讨论,需要厚 ...
- 单片机c语言随机数,单片机C语言如何产生随机数
随机数在单片机的应用中也是很多的,当然产生随机数的方法有很多,当中有一个就是利用单片机定时器,取出未知的定时器THX和TLX的值,再加以运算得到一个规定范围内的随机数值.这做法也是可行的.或者预先写好 ...
- c语言微秒级延迟程序,C语言中生产随机数及计算运行时间(微秒级)
java中要生产随机数的 话 直接 new一个 Random就 可以 了 ,c语言中的话会稍微麻烦一点点. 计算运行时间 在比较算法运行效率中 要 用到 . #include #include #in ...
- C语言如何设计随机数
如果你想学会设计0~100之间这样简单的随机整数的话我想你来对了地方 通用公式是:a+rand()%n a是起始值 n是整数范围 如下图 有几个需要注意的点 用到了随机函数所以在头文件里加上 #inc ...
最新文章
- [导入]ZT笑到内伤:史上最雷,最爆寒的电影字幕
- 全球充电最快手机:5分钟回血50%;华为未发布新手机 | MWC 2022
- C#常用控件的属性以及方法(转载)
- 安装python3.7.0的步骤_python 3.7.0 安装配置方法图文教程
- Entity Framework5.0运行时错误ObjectStateManager 中已存在具有同一键的对象
- Object类中的toString方法
- Shell:dos新建sh脚本在linux下执行报错“/bin/sh^M”
- stm32读取驾驶模拟器数据 stm32F407读取joystick数据
- python 进程池阻塞和非阻塞_Python协程还不理解?请收下这份超详细的异步编程教程!还没学会来找我!...
- 以太网驱动详解之 MAC、MII、PHY 详解
- win10linux系统双系统,win10安装linux双系统的方法是什么_win10装linux双系统的方法...
- GC问题排查实战三-Parallel Scavenge和Parallel Old日志分析
- Promise学习-手写一个promise
- linux卡住重启_linux df -h 命令卡住 解决方法
- [论文阅读]Road Mapping and Localization using Sparse Semantic Visual Features
- Python项目分析:预测双色球福利彩票中奖号码
- 阿里云视频点播(上传视频)服务最新版本使用方法(解决部分依赖无法下载或不存在问题)
- 量化交易入门阶段:好事要成双——双均线策略
- 人工智能知识图谱研究
- AWK用法示例 awk命令
热门文章
- 使用kubectl delete pods xxx删除对应的pod,提示删除成功,但是立马又会生成一个。为何?
- 总结:ps aux指令
- 三刷进博 | 跨界直播,组团参展,施耐德电气有备而来!
- 浅谈5G机房配套那些事
- 高低压验电笔应用口诀及使用方法
- 使用DCIM软件确保数据中心符合DCOI
- 数据中心安全的六条黄金规则
- string替换_GEE数据类型—String,Number
- ML:MLOps系列讲解之《CRISP-ML (Q)ML生命周期过程—了解机器学习开发的标准过程模型—业务和数据理解→数据工程(数据准备)→ML模型工程→评估ML模型→模型部署→模型监控和维护》解读
- ML之LiR2PolyR4PolyR:使用线性回归LiR、二次多项式回归2PolyR、四次多项式回归4PolyR模型在披萨数据集上拟合(train)、价格回归预测(test)