srand()和rand()函数详解

2023-10-31

头文件

C语言:<stdlib.h>
C++ :<stdlib.h> 或<cstdlib>

函数原型

int rand(void);
void srand(unsigned seed);

rand()函数

函数说明:rand函数产生的随机数严格意义讲不是真正的随机数,它里面采用了线性同余法计算出随机数,该方法有个最大周期M,也就是说该方法实在一定的范围内生成一串数字,不过这个M一般来说比较大,所以正常使用时一般看起来就是产生了随机的数,不过这个函数由于默认种子是1,所以每次产生的随机数都是相同的,也就是说每次运行程序,产生的随机数都是一样的,失去了部分随机的意义,所以一般会配合srand函数使用。

返回值: 返回0至RAND_MAX之间的随机整数值,RAND_MAX的值32767(16位系统)

srand()函数

函数说明:srand()函数为rand()函数提供随机数种子
通常以系统系统时间作为参数time(NULL)
注:使用time()函数需引入头文件<time.h>

得到[a,b)范围的随机数的方法

若要产生指定范围内的随机整数例如 [a, b) 则可以使用: a + rand() % (b - a) 表达式
若要产生指定范围内的随机整数例如 [a, b]则可以使用: a + rand() % (b - a+1) 表达式

具体实例应用

#include <time.h>
#include <stdlib.h>
#include<stdio.h>

int main()
{
    srand(time(NULL));
    for (int i = 0; i < 100; i++) {
        printf("%d\n", rand() % 100+1 );
    }
    return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

srand()和rand()函数详解 的相关文章

随机推荐

  • 时序预测

    时序预测 MATLAB实现基于PSO BiLSTM BiLSTM时间序列预测对比 目录 时序预测 MATLAB实现基于PSO BiLSTM BiLSTM时间序列预测对比 效果一览 基本描述 程序设计 参考资料 效果一览 基本描述 MATLA
  • Shiro实战学习笔记(4)- 整合springboot(1)

    1 shiro整合spring boot gt
  • 恒玄BES2300XX系列常用接口(2)

    hal cmu sys reboot 复位 hal norflash disable protection HAL NORFLASH ID 0 flash闪存禁用保护 define ANC MODE SWITCH WITHOUT FADE
  • vue脚手架、npm、node

    vue cli vue脚手架 cli gt command line interface 命令行界面 vue脚手架可以快速 安全的构建vue项目 vue cli 脚手架 需要使用npm cnpm包管理工具进行安装 npm npm是一种js语
  • C++ 一行代码删除string字符串中的“\n“、“\r“、“\t“ 和 所有空白字符

    这篇博客记录如何删除C 字符串中的回车 换行 制表符和所有的空白字符 方式一 示例 std string str n r t abc n t r cba r t n std cout lt lt str lt lt std endl 运行截
  • Websocket握手

    当客户端想要使用 WebSocket 协议与服务端进行通信时 首先需要确定服务端是否支持 WebSocket 协议 因此 WebSocket 协议的第一步是进行握手 WebSocket 握手采用 HTTP Upgrade 机制 客户端可以发
  • gpio子系统在sysfs中构建leds类

    1 内核配置 CONFIG GPIO SYSFS y CONFIG GPIOLIB y 1 CONFIG GPIO SYSFS 决定sysfs是否支持gpio子系统 也就是能否在 sys class 目录下看到gpio类 2 CONFIG
  • lua静态检查

    最近接了个组内的项目 代码是lua开发 由别的人写好 我进行调试 没想到呀 代码写完竟然都没有静态检查 到处都是坑 天了噜 程序员最怕的是什么 填坑呀 还是填别人的坑 没办法 只好一个一个的把坑填上 填完坑 不禁想问 难道写完代码 静态检查
  • Basic Level 1094 谷歌的招聘 (20分)

    题目 2004 年 7 月 谷歌在硅谷的 101 号公路边竖立了一块巨大的广告牌 如下图 用于招聘 内容超级简单 就是一个以 com 结尾的网址 而前面的网址是一个 10 位素数 这个素数是自然常数 e 中最早出现的 10 位连续数字 能找
  • redis设置密码加密

    修改redis conf的配置文件 映射或者禁止一些高危命令 后面为空即为禁止 rename command FLUSHALL rename command CONFIG rename command EVAL eg rename comm
  • uniapp中uni-load-more的使用

    1 引入uniloadmore import uniLoadMore from components uni load more uni load more vue components uniLoadMore 2 data中写的内容 re
  • MySQL遇到错误:1217 - Cannot delete or update a parent row: a foreign key constraint fails

    遇到问题 今天在准备 删库跑路 的时候 有的数据表再删除的时候报了以下错误 1217 Cannot delete or update a parent row a foreign key constraint fails 本着有事找度娘的原
  • 设计模式之中介者模式

    中介者模式 1 项目需求 设计一个智能家庭 家庭中包括各种设备 比如闹钟 咖啡机 电视机 窗帘等 完成各个设备之间的协同工作 假设流程为 闹钟响起 gt 咖啡机开始做咖啡 gt 窗帘自动落下 gt 电视机开始播放 这次项目的需求和外观模式一
  • 使用Python,OpenCV进行卡类型及16位卡号数字的OCR

    使用Python OpenCV进行卡类型及16位卡号数字的OCR 1 效果图 2 原理 2 1 OCR A字体 2 2 检测过程步骤 2 3 优化 3 源代码 参考 这篇博客将介绍如何通过OpenCV和Python使用模板匹配执行光学字符识
  • mysql 表级锁之读锁、写锁

    语法 lock tables tablename read write或 lock table tablename read write 表级锁 读锁 当MySQL的一个进程为某一个表开启读锁之后 其他的进程包含自身都没有权利去修改这个表的
  • Advanced Leve 1005 Spell It Right (20 point(s))

    Theme Given a non negative integer N your task is to compute the sum of all the digits of N and output every digit of th
  • CDH6.3.2之Kerberos安全认证

    问题导读 1 Kerberos认证原理是什么 2 Kerberos如何部署 3 CDH集群如何启用Kerberos 4 如何在Kerberos安全环境使用HFDS 01 PART Kerberos简介 Kerberos是一种计算机网络授权协
  • 2、怎么对printf重定向的?

    原文见这篇文章 以及这篇 调试代码时 需要将需要的信息发送到串口 这就要对printf进行重定向 正点原子的重定向代码如下 printf打印串口函数 if 1 pragma import use no semihosting 标准库需要的支
  • STM32cubeMX配置工程(全过程+修改MCU方法+注意事项)

    1 修改默认的固件包下载路径 避免占用C盘空间 2 选择ACCESS TO MCU 3 在跳出的界面中的Part Number中搜索对应的芯片型号 4 选好后在右下角双击对应的芯片 然后跳出配置界面 左边可以配置外设 右边可以配置每个IO口
  • srand()和rand()函数详解

    头文件 C语言