c语言中rand()函数

2023-11-05

一、rand()

rand()函数用来产生随机数,但是,rand()的内部实现是用线性同余法实现的,是伪随机数,由于周期较长,因此在一定范围内可以看成是随机的。

rand()会返回一个范围在0到RAND_MAX(32767)之间的伪随机数(整数)。

在调用rand()函数之前,可以使用srand()函数设置随机数种子,如果没有设置随机数种子,rand()函数在调用时,自动设计随机数种子为1。随机种子相同,每次产生的随机数也会相同。

rand()函数需要的头文件是:<stdlib.h>

rand()函数原型:int rand(void);

使用rand()函数产生1-100以内的随机整数:int number1 = rand() % 100;

二、srand()

srand()函数需要的头文件仍然是:<stdlib.h>

srand()函数原型:void srand (usigned int seed);

srand()用来设置rand()产生随机数时的随机数种子。参数seed是整数,通常可以利用time(0)或geypid(0)的返回值作为seed。

使用rand()和srand()产生1-100以内的随机整数:srand(time(0));

    int number1 = rand() % 100;

三、使用rand()和srand()产生指定范围内的随机整数的方法

“模除+加法”的方法

因为,对于任意数,0<=rand()%(n-m+1)<=n-m

因此,0+m<=rand()%(n-m+1)+m<=n-m+m

因此,如要产生[m,n]范围内的随机数num,可用:

int num=rand()%(n-m+1)+m;

其中的rand()%(n-m+1)+m算是一个公式,记录一下方便以后查阅。

比如产生10~30的随机整数:

srand((int)time(0));

int a = rand() % (21)+10;

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

c语言中rand()函数 的相关文章

  • 社区划分的标准--模块度

    在社区发现算法中 几乎不可能先确定社区的数目 于是 必须有一种度量的方法 可以在计算的过程中衡量每一个结果是不是相对最佳的结果 模块度 Modularity 用来衡量一个社区的划分是不是相对比较好的结果 一个相对好的结果在社区内部的节点相似
  • 语言基础篇11——函数、函数参数类型、装饰器、生成器

    函数 基本结构 def func name value print f Hello value return 0 func name World 函数参数 参数默认值和五种参数类型 https docs python org 3 gloss
  • Linux之间NFS挂载,及遇到的问题

    环境 Linux1 192 168 84 139 Linux2 192 168 84 138 目的 将Linux1文件下的 opt share分享给Linux2 步骤 1 两台机器上都安装rpcbind nfs yum install y
  • c++内存安全问题

    写一个好的C 程序 我们要懂得好多东西 比如说最基本的面向对象编程思想 C 的封装 继承 多态机制 设计模式等 还有一个很重要的内容便是性能优化 像C C 这种接近底层的语言 追求的就是性能 与之相关的一项内容便是内存管理 内存分配要合理
  • 如何在Java中将STL转换为PDF或PNG图像?试试这个

    STL文件用于显示3D曲面的几何形状 但是 只有少数与CAD相关的应用程序支持查看或使用STL文件 因此 您可能需要将STL文件转换为PDF或PNG图像 因为它广泛支持PDF或图像文件格式 所以它使您可以在许多操作系统和环境中概述文件 让我
  • ES6之 Module

    ES6之 Module ES6 的 Class 只是面向对象编程的语法糖 升级了 ES5 的构造函数的原型链继承的写法 并没有解决模块化问题 Module 功能就是为了解决这个问题而提出的 JavaScript 一直没有模块 module
  • 如何完美卸载ubuntu系统的解决方法

    由于我本人之前安装ubuntus双系统没把ubuntus卸载干净导致一堆问题 以下给出解决方案 网上的方法差点把我的分区表给删了 问题一 为什么你用硬盘分出来的未使用空间 linux系统读不到你这个空间呢 解决方法 因为之前我装双系统的时候
  • Python 实现MD5加密算法对文件加密 返回加密MD5值

    Python 实现MD5加密算法对文件加密 返回加密MD5值 1 本文知识点 使用Python 实现MD5加密算法对文件内容的加密 返回加密MD5值 可用于文件传输前和接收时的校验文件内容是否丢失 文件传输前将文件内容加密为MD5值 将MD
  • 数理基础(概率论)------离散型随机变量均匀分布、正态分布、指数分布图像和连续型随机变量泊松分布、二项分布图像

    1 均匀分布 1 1标准均匀分布 0 1 import numpy as np 满足0 1均匀分布 X U a b a 0 b 1 s1 np random rand 1000 print s1 期望 E X a b 2 0 1 2 0 5
  • texlive安装过程越来越慢解决办法

    本人安装texlive2022版本 从清华源下载的镜像文件安装过程发生安装包越来越慢的问题 从官网下载镜像文件 没有越来越慢的问题 详细步骤不介绍 希望对您有帮助
  • 根据自己前几篇文章让chatGTP给我生成了一篇论文

    标题 基于LLM模型语言的应用 使用Xshell连接腾讯云服务器并搭载Stable Diffusion 摘要 本文介绍了如何使用LLM模型语言 通过Xshell连接腾讯云服务器 并在服务器上搭载Stable Diffusion 具体而言 我
  • 纯真IP数据库格式详解

    纯真IP数据库格式详解 http lumaqq linuxsir org article qqwry format detail html http blog csdn net cnss archive 2004 08 18 77628 a
  • 一日一技:用Python做游戏有多简单

    自从表白代码发了以后 有很多同学问我除了这种表白的 还有其他什么小游戏吗 游戏是怎么做的 难不难 我就用两篇文章来介绍一下 如果使用Python做游戏 兔子与灌 俄罗斯方块 休闲五子棋 走迷宫 推箱子 消消乐 超多小游戏玩转不停 更多小游戏
  • 文举论金:3.10黄金原油全面走势分析策略指导。

    市场没有绝对 涨跌没有定势 所以 对市场行情的涨跌平衡判断就是你的制胜法宝 欲望 有句意大利谚语 让金钱成为我们忠心耿耿的仆人 否则 它就会成为一个专横跋扈的主人 空头 多头都能赚钱 唯有贪心不能赚 是你掌控欲望还是欲望掌控你 古人云 不积
  • 基数排序--基于计数排序的线性时间复杂度的排序算法

    我们前面提到了一种时间复杂度为O n k 其中k是待排序列最大值的排序算法 计数排序 复习请点击此处 本文我们将继续介绍一种线性时间复杂度的排序算法 基数排序 这种排序算法的时间复杂度为 d n k 这种排序基于我们之前将的计数排序 其中n
  • vue H5跳转小程序报错:config:fail,Error: 系统错误,错误码:63002,invalid signature

    相关文档 微信开发者工具下载地址与更新日志 微信网页开发 JS SDK说明文档 微信 JS 接口签名校验工具 全局返回码说明 H5跳转小程序报错 config fail Error 系统错误 错误码 63002 invalid signat
  • KDE相关记录

    20220809 在使用KDE的过程中 涉及到一些参数选择 或者运行速度的问题 目前经过调试之后 对各个部分的内容都进行了涉及 这里记录一下 首先 KDE kernel density estimate 是一种无参数的概率密度估计方法 这里
  • 【TGAM-springboot入门练手项目】采用jwt+shiro实现权限管理(二)

    TGAM springboot入门练手项目 此项目是个人参与工作室的一个项目 分为硬件 IOS WEB 后端 数据分析等几大部分 具有实际商用价值 而我虽然只是在其中打杂 写的后端也不够好 但是我会努力地将这系列文章写清楚 详细 若有什么疑
  • Hiberate hibernate.cfg.xml 及c3p0连接池配置实例

  • 数据库链接工具

    安装方式 Navicat 自行百度需要破解 展示效果

随机推荐