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函数的方法相关推荐

  1. c语言随机数rand函数一探究竟

    c语言随机数rand函数一探究竟 真正的随机数? 测试srand对rand的影响. 这是真的吗? 结论 rand函数是C语言用来产生随机数的函数,一般搭配srand函数使用.使用方法如下: #incl ...

  2. 自定义strcpy函数c语言,c语言编写strcpy函数的方法

    c语言编写strcpy函数的方法 1.搭建基本的C语言程序框架,注意添加#include头文件 2.定义两个字符数组 3.strcpy函数原型:char *strcpy(char *dest, con ...

  3. 3.1 Go语言中的函数与方法

    函数定义语法 与大部分语言一致,Go语言中的函数定义与其他语言基本一致 func function_name(Parameter-list) {// function body... }func fu ...

  4. c语言rand再哪个头文件里,c语言下rand函数在哪个头文件中

    满意答案 kongxiang09 2012.11.20 采纳率:47%    等级:13 已帮助:7313人 1.只能产生伪随机数,最多也只是提高模拟的程度而已,rand函数内部管理着一个计数单位,程 ...

  5. 【C语言】rand()函数(如何生成指定范围随机数)

    一.rand()函数简介 我们先来看一下cplusplus.com - The C++ Resources Network网站上rand函数的基本信息: 系统生成随机数时需要使用rand函数(rand ...

  6. C语言-关于rand()函数的使用

    一.关于rand(): 首先我们须了解: ①rand()函数包含在<stdlib.h>中. ②rand()函数定义:int rand(void); ②rand()函数产生的随机数范围为0- ...

  7. c#语言怎么定义函数,C#方法方法用法 _C#语言-w3school教程

    C#语言 的 C#方法 C#中的方法是一组执行任务的语句. 每个 C# 程序至少有一个类包含一个名称为Main()的方法. 要使用方法,需要: 定义方法 调用方法 C# 中定义方法 当要定义一个方法时 ...

  8. c语言函数的使用步骤,c语言打开文件函数使用方法

    ANSI C规定文件打开用函数fopen,关闭为fclose. 1.调用方式通常为: FILE *fp; fp=fopen(文件名, 打开方式); 2.参数说明: 文件名: 形如"myfil ...

  9. 【从饮水机到名人堂之c语言】详解rand()函数(详解随机数生成方法)

    目录 前言 一.rand()函数 二.srand()函数 三.时间戳 四.time()函数 五.注意 六.猜大小游戏源码 总结 前言 在我们的日常写程序中,必然会用到我们的rand函数生成我们的随机数 ...

最新文章

  1. 大数据流通存隐忧 产业信任体系亟待建立
  2. “Account is trusted for delegation is not shown || cannot see the Delegation tab
  3. hbase shell命令扩展(转自http://www.netfoucs.com/cuirong1986/article/details/7986900)
  4. 机器人学习--George Mason University 自主机器人学课程
  5. Java:控制台输入车辆信息,将信息保存至数据库中
  6. Zabbix 3.0 安装
  7. LeetCode--palindrome-number回文数
  8. TIM怎么设置禁止窗口抖动 TIM防抖设置技巧
  9. TFBOYS网易云音乐演唱会破纪录 同时在线人数超78万
  10. JAVA     MyFirst.java
  11. python数据录入_Re:从零开始的Python数据分析(实战篇)
  12. 【推荐】树莓派设备+AndroidThings操作系统+TensorFlow图像识别SDK
  13. Python 第七篇:socket编程
  14. HTML5:web socket 和 web worker
  15. MATLAB 语言基础知识 矩阵和数组 从矩阵中删除行或列
  16. ddk高级主题和提示
  17. Yii2.0 获取当前url和域名
  18. 百度地图点聚合仿链家定位点多级聚合,且滑动、刷新加载定位点
  19. android studio umake,Android Studio中NDK开发傻瓜教程(CMake)
  20. 2020计算机专业保研夏令营面经:中科院计算所网数机试题目

热门文章

  1. mysql主从复制与主主复制的对比_MySQL主从复制与主主复制
  2. HTML、CSS知识点总结。
  3. [从头学绘画] 第14节 六十四式八卦掌 (17-24)
  4. 基于java的微信小程序的实现(二)登录,注册,注销接口的实现
  5. linux处理kdevtmpfsi,kswapd0(挖矿病毒清除)
  6. 谈高校图书馆机构知识库法律问题剖析与对策
  7. 【会声会影】初装会声会影时,必要的设置
  8. 帮我写8寸循环风扇分镜,需要宣传台面地面2合1 两用,循环吹风,材质肤感高级,多模式选择,上下左右摇头,做成45秒视频10个分镜脚本,并写出这10个镜头之间转场如何运镜...
  9. Focus事情,引起我的解题思路(Focus事件不起作用,与click,mousedown的事情)
  10. JAVA 方法重载和方法覆写的区别(有代码)