随机数的生成函数

C语言中有可以产生随机数据的函数,需要添加 stdlib.h 头文件与 time.h 头文件。首先在 main 函数开头加上 "srand((unsigned)time(NULL))",这个语句将生成随机数种子。然后,在需要使用随机数的地方使用 rand() 函数即可。如下是一段生成十个随机数的代码:

#include 

该示例的输出结果为:

显然输出结果是实时变化的。其实 rand() 函数只能生成 [0, RAND_MAX] 范围内的整数(RAND_MAX 是 stdlib.h 中的一个常数,在不同系统环境中,该常数的值有所不同,在本机环境中是 32767)。

生成 RAND_MAX 范围内的随机数

因此,如果需要输出给定 [a, b] 内的随机数,需要使用 rand() % ( b - a + 1 ) + a 。

生成超过 RAND_MAX 范围的随机数

显然上面的这种方法只能对左右端点相差不超过 RAND_MAX 的区间的随机数有效,如果需要生成更大的数(例如 [a, b],b 大于 32767)就不行了。此时,我们可以先用 rand() 生成一个 [0, RAND_MAX] 范围内的随机数,然后用这个随机数除以 RAND_MAX,这样就会得到一个 [0, 1] 范围内的浮点数。我们只需要用这个浮点数乘以 ( b - a ),再加上 a 即可,即 (int)(round( 1.0 * rand() / RAND_MAX * ( b - a ) + a )),相当于这个浮点数就是 [a, b] 范围内的比例位置。如下是一段生成 [10000, 60000] 范围内的随机数的示例:

#include 

该示例的输出结果如下:

c语言产生随机数_第四章:随机数的生成相关推荐

  1. C语言程序设计教程_第四章:键盘输入与屏幕输出_笔记整理

    第四章 键盘输入与屏幕输出[

  2. C语言入门——《明解C语言》入门篇第四章练习

    新开C语言专栏整理一下学C的艰苦之路,先从看书+视频开始. 整理了<明解C语言>入门篇第四章练习的"参考答案",记录一下学习的过程.直接上代码. 练习4-1 int m ...

  3. R语言实战笔记--第十四章 主成分和因子分析

    R语言实战笔记–第十四章 主成分和因子分析 标签(空格分隔): R语言 主成分分析 因子分析 原理及区别 主成分分析与因子分析很接近,其目的均是为了降维,以更简洁的数据去解释结果,但这两种方法其实是相 ...

  4. ArcGIS for Desktop入门教程_第四章_入门案例分析 - ArcGIS知乎-新一代ArcGIS问答社区...

    原文:ArcGIS for Desktop入门教程_第四章_入门案例分析 - ArcGIS知乎-新一代ArcGIS问答社区 1 入门案例分析 在第一章里,我们已经对ArcGIS系列软件的体系结构有了一 ...

  5. java程序设计基础_陈国君版第五版_第四章例题

    java程序设计基础_陈国君版第五版_第四章例题 <pre name="code" class="java">public class Main4_ ...

  6. python语言程序设计基础答案第四章_《Python语言程序设计基础》第四章笔记

    4.1 程序的分支结构 4.1.1 单分支结构 if : if True: print("条件正确") 4.1.2 二分支结构 if : else : if True: print ...

  7. linux shell 变量减法_第四章 shell和环境变量

    第四章 shell和环境变量 4.1    shell简介 4.1.1 编译器 一台计算机从基本架构上讲,由最基本的硬件组成硬件结构(如:cpu.内存.主板.声卡.显卡等),我们知道,硬件组成完备,但 ...

  8. 马丁福勒《UML精粹》读书笔记_第四章

    第四章 顺序图 顺序图是一个use case的一种实现.当考察单个use case内部若干对象的行为时,就应使用顺序图. 可参考"高焕堂<嵌入式UML设计>读书笔记_第五章&qu ...

  9. 曲线拟合最小二乘法对数c语言实现,数值计算_第6章曲线拟合的最小二乘法

    <数值计算_第6章曲线拟合的最小二乘法>由会员分享,可在线阅读,更多相关<数值计算_第6章曲线拟合的最小二乘法(23页珍藏版)>请在人人文库网上搜索. 1.第6章 曲线拟合的最 ...

最新文章

  1. Cross_validation.train_test_split 中 stratify这个参数的意义是什么?
  2. 转载:页面滚动条处理
  3. C#.NET验证码智能识别学习笔记---06 解决java jre问题:JTessBoxEditor.jar打开的时报找不到或无法加载主类 com.sun.tools.javac.Main错误
  4. python装饰器两层和三层_python装饰器为什么要双层嵌套函数
  5. python selenium 弹出框定位_selenium弹框元素定位-冻结界面
  6. 简单实现内外网自由切换、指定网卡上网
  7. win10桌面新建|解压文件夹不自动显示|需要自动刷新
  8. android 获取经纬度的三种方法,Android获取经纬度
  9. HM-A300小程序安卓打印异常
  10. options.add_argument(r'--user-data-dir=C:\Users\name\AppData\Local\Google\Chrome\User Data') 绕过登录
  11. 有域名和服务器怎么建设网站新手,新手如何快速搭建一个新的网站【零基础】...
  12. 淘宝 NPM 镜像 node删除node_modules WebStorm license server address
  13. Android Janus漏洞修复
  14. 微信公众平台版面设计需要服务器,公众号版面设计,微信公众号中排版怎么弄...
  15. 什么是序列化与反序列化
  16. Mysql SQL优化(二) 快速生成5位数不重复的编号
  17. CTFSHOW WEB入门
  18. win10修改user文件夹名称
  19. flickr 照片自动保存_Flickr照片栏画廊
  20. delphi android 多线程,Delphi中使用TThread进行多线程开发总结

热门文章

  1. 【Python】自动去除图片背景——Python抠图,就是这么轻松
  2. C语言实现二叉树的非递归遍历
  3. 博文中标题的样式H1H2H3H4
  4. python三角网格代码_Python 实现 Delaunay Triangulation
  5. 数据库密钥过期了怎么办?
  6. 如何在linux环境下搭建Tor代理服务器
  7. 北师大版用计算机开方教案,新北师大版八年级上册《2.5用计算器开方》教案
  8. 网络篇 - rpc协议的应用web3j
  9. js基础之探秘Array的原型方法
  10. java项目测试环境搭建