C语言实现RAND函数的方法
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的值的话,那么生成的结果可能就不一样了。
C语言实现RAND函数的方法相关推荐
- c语言随机数rand函数一探究竟
c语言随机数rand函数一探究竟 真正的随机数? 测试srand对rand的影响. 这是真的吗? 结论 rand函数是C语言用来产生随机数的函数,一般搭配srand函数使用.使用方法如下: #incl ...
- 自定义strcpy函数c语言,c语言编写strcpy函数的方法
c语言编写strcpy函数的方法 1.搭建基本的C语言程序框架,注意添加#include头文件 2.定义两个字符数组 3.strcpy函数原型:char *strcpy(char *dest, con ...
- 3.1 Go语言中的函数与方法
函数定义语法 与大部分语言一致,Go语言中的函数定义与其他语言基本一致 func function_name(Parameter-list) {// function body... }func fu ...
- c语言rand再哪个头文件里,c语言下rand函数在哪个头文件中
满意答案 kongxiang09 2012.11.20 采纳率:47% 等级:13 已帮助:7313人 1.只能产生伪随机数,最多也只是提高模拟的程度而已,rand函数内部管理着一个计数单位,程 ...
- 【C语言】rand()函数(如何生成指定范围随机数)
一.rand()函数简介 我们先来看一下cplusplus.com - The C++ Resources Network网站上rand函数的基本信息: 系统生成随机数时需要使用rand函数(rand ...
- C语言-关于rand()函数的使用
一.关于rand(): 首先我们须了解: ①rand()函数包含在<stdlib.h>中. ②rand()函数定义:int rand(void); ②rand()函数产生的随机数范围为0- ...
- c#语言怎么定义函数,C#方法方法用法 _C#语言-w3school教程
C#语言 的 C#方法 C#中的方法是一组执行任务的语句. 每个 C# 程序至少有一个类包含一个名称为Main()的方法. 要使用方法,需要: 定义方法 调用方法 C# 中定义方法 当要定义一个方法时 ...
- c语言函数的使用步骤,c语言打开文件函数使用方法
ANSI C规定文件打开用函数fopen,关闭为fclose. 1.调用方式通常为: FILE *fp; fp=fopen(文件名, 打开方式); 2.参数说明: 文件名: 形如"myfil ...
- 【从饮水机到名人堂之c语言】详解rand()函数(详解随机数生成方法)
目录 前言 一.rand()函数 二.srand()函数 三.时间戳 四.time()函数 五.注意 六.猜大小游戏源码 总结 前言 在我们的日常写程序中,必然会用到我们的rand函数生成我们的随机数 ...
最新文章
- 大数据流通存隐忧 产业信任体系亟待建立
- “Account is trusted for delegation is not shown || cannot see the Delegation tab
- hbase shell命令扩展(转自http://www.netfoucs.com/cuirong1986/article/details/7986900)
- 机器人学习--George Mason University 自主机器人学课程
- Java:控制台输入车辆信息,将信息保存至数据库中
- Zabbix 3.0 安装
- LeetCode--palindrome-number回文数
- TIM怎么设置禁止窗口抖动 TIM防抖设置技巧
- TFBOYS网易云音乐演唱会破纪录 同时在线人数超78万
- JAVA MyFirst.java
- python数据录入_Re:从零开始的Python数据分析(实战篇)
- 【推荐】树莓派设备+AndroidThings操作系统+TensorFlow图像识别SDK
- Python 第七篇:socket编程
- HTML5:web socket 和 web worker
- MATLAB 语言基础知识 矩阵和数组 从矩阵中删除行或列
- ddk高级主题和提示
- Yii2.0 获取当前url和域名
- 百度地图点聚合仿链家定位点多级聚合,且滑动、刷新加载定位点
- android studio umake,Android Studio中NDK开发傻瓜教程(CMake)
- 2020计算机专业保研夏令营面经:中科院计算所网数机试题目
热门文章
- mysql主从复制与主主复制的对比_MySQL主从复制与主主复制
- HTML、CSS知识点总结。
- [从头学绘画] 第14节 六十四式八卦掌 (17-24)
- 基于java的微信小程序的实现(二)登录,注册,注销接口的实现
- linux处理kdevtmpfsi,kswapd0(挖矿病毒清除)
- 谈高校图书馆机构知识库法律问题剖析与对策
- 【会声会影】初装会声会影时,必要的设置
- 帮我写8寸循环风扇分镜,需要宣传台面地面2合1 两用,循环吹风,材质肤感高级,多模式选择,上下左右摇头,做成45秒视频10个分镜脚本,并写出这10个镜头之间转场如何运镜...
- Focus事情,引起我的解题思路(Focus事件不起作用,与click,mousedown的事情)
- JAVA 方法重载和方法覆写的区别(有代码)