C语言实现RAND函数的方法

2023-10-29

C语言使用rand()%一个值就可以实现生成一个伪随机数供我们使用,那么rand函数是如何实现的呢?我们自己可不可以编辑出来?其实是可以的,rand作为伪随机数发生器产生的是一个伪随机数,一般的用途能够满足。
要想实现这个函数,需要用一个公式,x=ax+b%65536用这样的公式就可以简单的实现随机数了,至于为什么是214013、2531011这两个数应该是有个内部逻辑,数学上的验证而来,这两个数如果任意取可能效果不是很好。

static long holdrand = 1L;
void __cdecl srand (unsigned int seed)
{
        holdrand = (long)seed;
}
int __cdecl rand (void)
{
        return(((holdrand = holdrand * 214013L + 2531011L) >> 16) & 0x7fff);
}

定义完上面之后,在主函数中调用。

int main()
{
    srand(GetTickCount());
    int i;
    i=rand()%100;
    printf("%d",i);
}
这样就可以简单实现这个函数了。注意到这样实现的效果是与C库函数一模一样,没有任何差别,如果你换了 214013L/2531011L的值的话,那么生成的结果可能就不一样了。

 

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

C语言实现RAND函数的方法 的相关文章

  • Ubuntu安装solc编译环境步骤

    Ubuntu安装solc编译环境步骤 cmake装过程 安装Z3 安装Boost Solidity安装 Ethereum使用 更进一步的开发 cmake装过程 solc编译器需要的cmake版本要大于3 9 0 所以要安装高于这个版本的cm
  • 论文笔记:FeUdal Networks for Hierarchical Reinforcement Learning

    0 abstract introduction 这也是一篇分层强化学习的论文 分为两层 Manager 上层 设置抽象的goal 这个goal传递给Worker 和H DQN不同 这个goal是由Manager自己学出来的 或者说 FUN不
  • Linux 下系统调用的三种方法

    系统调用 System Call 是操作系统为在用户态运行的进程与硬件设备 如CPU 磁盘 打印机等 进行交互提供的一组接口 当用户进程需要发生系统调用时 CPU 通过软中断切换到内核态开始执行内核系统调用函数 下面介绍Linux 下三种发
  • redis 高级应用之二(Redis的持久化 和 消息的[pub/sub]发布和订阅)

    1 Redis的持久化机制 redis是个支持持久化的内存数据库 也就是说redis要经常把内存中的数据保存到硬盘中来保证持久化 redis持久化方式有两种 snapshotting 快照 也是默认方式 原理 默认redis是会以快照的形式
  • Apache Tomcat 漏洞复现

    文章目录 Apache Tomcat 漏洞复现 1 Tomcat7 弱密码和后端 Getshell 漏洞 1 1 漏洞描述 1 2 漏洞复现 1 3 漏洞利用 1 3 1 jsp小马 1 3 2 jsp大马 1 4 安全加固 2 Aapac
  • Mybatis多表联查的几种办法

    前言 开发过程中 对数据库多表连接查询是常规操作 Mybatis plus 在多表连接查询上提供了很好的支持 通常 表与表之间存在四种映射关系 一对一映射 多对一映射 一对多映射 多对多映射 在处理的过程中 多对一和一对一映射一般采用同一种
  • vb.net制作动态链接库(*.dll)

    dll制作专栏 关于vb net图像 视频处理的类库调用 大Mod制造者abfun的博客 CSDN博客 新建一个类库 我相信这不需要细讲了 dll有什么优点 第一 减少应用程序体积 但是单独的dll有时也会占用不少空间 第二 减少程序内存
  • 【Neo4j】第 7 章:社区检测和相似性措施

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • Java BufferedWriter.write()具有什么功能呢?

    转自 Java BufferedWriter write 具有什么功能呢 BufferedWriter write 功能说明 bufferedWriter write 写入数据到文件中 由于缓冲区大小有限 需调用flush方法及时刷新缓冲区
  • HTML——列表标签

    使用场景 在网页中按照行展示关联性的内容 如 新闻列表 排行榜 账单等 特点 按照行的方式 整齐显示内容 种类 无序列表 有序列表 自定义列表 1 无序列表 ul 标签表示 HTML 页面中项目的无序列表 一般会以项目符号呈现列表项 而列表
  • Matlab实现支持向量机算法(附上多个完整仿真源码)

    支持向量机是一种常见的机器学习算法 它可以用于分类和回归问题 在Matlab中使用支持向量机 可以方便地构建和训练模型 并进行预测和评估 本文将介绍Matlab支持向量机的基本原理以及一个简单的分类案例 文章目录 1 支持向量机的基本原理
  • 华为网络工程师虚拟服务器软件,软考网络工程师华为、思科指令大全

    原标题 软考网络工程师华为 思科指令大全 华为命令大全 一 配置交换机的名称和密文密码 用户视图 system view 进入系统视图配置 Huawei 系统视图 Huawei quit 或 return 退出系统视图模式 Huawei s
  • 如何在完成css路由跳转动画样式的同时完成umi路由鉴权?

    具体解决步骤 1 在src的目录下 和page同级 新建一个wrappers文件夹 这个名称是固定的 在文件夹下新建 Auth tsx文件 2 在文件里面的写入以下内容 import Redirect from umi export def
  • SpringBoot 中 @SpringBootApplication注解背后的三体结构探秘

    概 述 SpringBoot 约定大于配置 的功力让我们如沐春风 在我之前写的文章 从SpringBoot到SpringMVC 也对比过 SpringBoot 和 SpringMVC 这两个框架 不过最终 SpringBoot 以超高的代码
  • 计算机网络 : 综合实验

    打算稍微做一下实验课程的回顾 话不多说 正文开始 期末周的好同志就是这么单刀直入 综合实验 实验目的和要求 实验图 实验原理 实验仪器设备 实验步骤 过程数据记录 实验结果分析与总结 实验目的和要求 了解路由协议的作用 学习动态路由协议的工
  • c++语言所有函数都是外部函数.,简单讲解C++的内部和外部函数以及宏的定义

    C 内部函数和外部函数 函数本质上是全局的 因为一个函数要被另外的函数调用 但是 也可以指定函数只能被本文件调用 而不能被其他文件调用 根据函数能否被其他源文件调用 将函数区分为内部函数和外部函数 内部函数 如果一个函数只能被本文件中其他函
  • Servlet容器(Web容器)是什么

    Servlet 容器就是 Servlet 代码的运行环境 实现 Servlet 规范定义的各种接口和类 因为是基于 Java 语言的 运行必然少不了 JRE 的支持 这样的能运行Servlet 代码的就是Servlet容器 tomcat容器
  • jmeter基础使用方法

    文章目录 一 配置环境变量 二 Jmeter默认语言设置 三 启动 线程组的创建 发送http请求 数据报告 一 配置环境变量 设置JMETER HOME 及jemeter解压目录 设置CLASSPATH 此处分别配置ApacheJMete
  • 【一文清晰】单元测试到底是什么?应该怎么做?

    我是java程序员出身 后来因为工作原因转到到了测试开发岗位 测试开发工作很多年后 现在是一名自由职业者 1 什么是单元测试 2 该怎么做单元测试 一 什么是单元测试 单元测试 unit testing 是指对软件中的最小可测试单元进行检查
  • 网络工程师(中级)知识点记录

    软考中级网络工程师大纲地址 链接 https pan baidu com s 1vqKdtA9CeMxozXwLetQp8A 提取码 pbb6 内容还挺全的 可以拿来当做学习知识点用 1 现代的计算机网络是从 1969年美国国防部的ARPA

随机推荐

  • sql 统计查询(按月统计)

    String 类型 转化为 年月日 yyyy mm dd to date substr t submit time 1 10 如果统计一年 需要用 left join select level mymonth from dualconnec
  • opencv报错【warn】 global....... imread(

    检查你的输入依赖 debug用带d结尾的lib release用不带d的 把多余的删掉即可
  • C语言小游戏:猜数字小游戏(猜1-100的数字)

    初学c语言循环部分的萌新可以看看 内含有详细讲解 试着自己去理解会有很大帮助 include
  • 基于MATLAB的指纹识别算法仿真实现

    FPGA教程目录 MATLAB教程目录 目录 一 理论基础 二 核心程序 三 测试结果 一 理论基础 在指纹图像预处理部分 论文对预处理的各个步骤包括规格化 图像分割 中值滤波 二值化 细化等以及各个步骤的方法进行了深入的分析和研究 选择了
  • MySQL数据库实现本地数据库和远程服务器数据库数据同步

    项目中有两个数据库 本地数据库和远程服务器数据库 数据要在本地经过数据洗涤后才传上服务器数据库 之前用的Navicat工具 但是速度慢 且无法设置定时同步 后来改用Datax 它的效率真的非常高 DataX 是阿里巴巴集团内被广泛使用的离线
  • 大语言模型未来会是数据工程吗

    作者 养生的控制人 整理 NewBeeNLP https zhuanlan zhihu com p 654959483 大家好 这里是 NewBeeNLP 分享符尧博士关于大语言模型的数据工程方面的一些见解 原文链接 1 take home
  • Docker基础篇6:Dockerfile指令(1)

    1 Dockerfile指令 1 FROM指令 构建的新镜像是基于那个镜像 例如 FROM centos 7 2 MAINTAINER指令 镜像维护者姓名或者邮件地址 3 RUN指令 构建镜像时运行的shell命令 写法一 RUN yum
  • vue 获取 指定元素的高度宽度等(使用vue中的 ref 获取到的是 dom 元素高度或者宽度)

    使用 vue 的时候 想要获得一个指定的元素的高度时 可以使用 vue 中的 ref 当 ref 加在普通的元素上 使用 this ref name 获取到的是 dom 元素 示例 写在 页面 html 部分的 div div 写在 页面
  • 从零开始搭二维激光SLAM --- Hector论文公式推导与相关代码解析

    这篇文章将带领大家推导一下hector slam论文中的公式 之后再对这部分公式对应的代码进行讲解下 markdown打公式太费劲了 所以我用手写了 懒 然后csdn又限制了图片文件大小 我是照完照片又截图才传上来的 所以图片有点不清晰 1
  • 实现最小栈

    题目要求 实现一个栈 要求实现Push 出栈 Pop 入栈 Min 返回最小值的操作 的时间复杂度为O 1 首先针对这道题有多重解决方案 1 定义两个栈 一个正常栈 另一个栈的栈顶始终保存整个栈内的最小值 思路如下 无论Push什么数据 正
  • BGI::detail::content用法详解及示例代码

    BGI detail content用法详解及示例代码 在C C 编程中 BGI Borland Graphics Interface 是一个用于图形绘制的库 它提供了一系列函数和工具 使开发者能够在DOS和Windows环境下创建图形界面
  • NumPy——输出向量和矩阵

    微信公众号 龙跃十二 我是小玉 一个平平无奇的小天才 我们都知道 NumPy是python学习和机器学习中非常重要的库 我们在学习过程中不可避免的使用到这个库 NumPy是Python中科学计算的基础包 它提供多维数组对象 各种派生对象 如
  • 一文搞懂Python的文件路径操作

    如果你要在代码里读取一个文件 那么你首先要知道这个文件的路径 如果只有一个文件 那么很简单 直接复制这个文件所在的文件夹路径及其文件名即可 而在很多情况下 我们会处理大量的文件 这些文件一般都会按一定的规则存放在一个或几个文件夹里 本文便是
  • cesium timeline时间改为系统时间(北京时间) vue版本

    效果图 初始化三维球后 追加如下代码 修改timeline时间 从珠联时间改为北京时间 initGlobel 省略初始化 this viewer animation viewModel dateFormatter this DateTime
  • linux卸载openjdk并安装jdk

    1 java version 查看是否安装 2 查看有哪些java安装文件 3 开始卸载 卸载掉下面两个 java version查看找不到java版本 就说明卸载成功了 如果卸掉下面两个还能看到java版本的话 就可以把第一个和第二个一起
  • python中字符串大小写判断和转换函数(upper,lower,capitalize,istitle)

    S为一字符串 可以使用python的内建函数对S中的字母大小写做判断和改变 supper lower和capitalize是转换函数 可以把字符串中的字母做相应的处理 istitle isupper和islower是判断函数 它们对字符串做
  • opencv+mfc搭建框架

    环境 vs2012 opencv2 49 功能 加载图片 保存 二值化 放大 缩小 旋转 实现方法 用opencv来实现相应的图像处理功能 用mfc的对话框来搭建框架 难点 在Mfc框架下显示图片 解决办法 根据父窗口与子窗口的关系 将op
  • VuforiaAR扫描3d物体

    Unity版本为2020 3 20 Vuforia版本为9 6 3 有偿demo 链接 https pan baidu com s 1YlmKeMWvMFRYPhieP3OrqQ 3D物体数据扫描 安卓机扫描3D物体的Scanner工具包下
  • C#的线性规划代码

    using System using System Collections Generic using System Linq using System Text using System Threading Tasks namespace
  • C语言实现RAND函数的方法

    C语言使用rand 一个值就可以实现生成一个伪随机数供我们使用 那么rand函数是如何实现的呢 我们自己可不可以编辑出来 其实是可以的 rand作为伪随机数发生器产生的是一个伪随机数 一般的用途能够满足 要想实现这个函数 需要用一个公式 x