今天学习了一下随机函数rand的算法。

这个算法叫做线性同余算法(linear congruential generator (LCG))。

不同的编译器取的常数不同,可以参考wiki:http://en.wikipedia.org/wiki/Linear_congruential_generator

以下程序可以输出和系统一样的随机数。

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3
 4
 5 #define _A 214013LL
 6 #define _B 2531011LL
 7
 8
 9 int a;
10
11
12 void mysrand(int x)
13 {
14     a = x;
15 }
16
17
18 int myrand()
19 {
20     return ((a = a * _A + _B)>>16) & 0x7fff;
21 }
22
23
24 int main()
25 {
26     mysrand(0);
27     srand(0);
28     while (1)
29     {
30         printf ("%d, %d\n", rand(), myrand());
31         getchar();
32     }
33     return 0;
34 }

转载于:https://www.cnblogs.com/lzsz1212/p/4132594.html

随机函数rand()算法相关推荐

  1. 如何把wps随机数据固定_WPS Excel:巧用随机函数rand和randbetween生成各种数据

    原标题:WPS Excel:巧用随机函数rand和randbetween生成各种数据 rand和randbetween函数的本职工作是产生随机小数和随机整数.然而,应用巧妙的话,还可以获取随机姓名.随 ...

  2. 用函数计算机玩游戏,2017年计算机等级考试二级C++辅导:随机函数rand()的猜数字游戏...

    突然遇到了随机函数的问题,那出来和大家分享一下 : srand():用此函数来获取随机数的种子,rand()来获取随机数; rand和srand的用法 首先我们要对rand&srand有个总体 ...

  3. matlab随机函数rand取值范围,Matlab随机函数rand使用中应注意的问题

    matlab随机函数rand使用中应注意的问题 (1). rand产生的是0到1(不包括1)的随机数. Matlab的rand函数生的是伪随机数,即由种子递推出来的,相同的种子,生成相同的随机数. M ...

  4. c语言设置随机函数,C语言随机函数(c语言随机函数rand怎么用)

    就像是楼上写的 通常随机函数rand() 带有时间种子的随机函数srand(time(0))在用rand()实现.记住加相关头文件 它的返回值就是求取随机的值,所以如果没有对数有要求,直接这样定:pr ...

  5. 随机函数rand()[c++]

    一.C++中不能使用random()函数 random函数不是ANSI C标准,不能在gcc,vc等编译器下编译通过.但在C语言中int random(num)可以这样使用,它返回的是0至num-1的 ...

  6. c语言随机字符rand,c语言随机函数rand()怎么使用

    原发布者:gw_210用c语言产生随机数rand()     在C语言中,rand()函数可以用来产生随机数,但是这不是真真意义上的随机数,是一个伪随机数,是根据一个数,我们可以称它为种子,为基准以某 ...

  7. linux c 随机函数 rand srand 介绍

    一.在使用rand()产生随机数时,产生的是0~RAND_MAX(该值与平台有关,至少为32767,我下面测试的平台是0x7fffffff),之间的随机数,但其产生的随机数时伪随机数,默认随机数种子为 ...

  8. C++中随机函数rand()和srand()的用法

    一.rand() 函数名:   rand      功   能:   随机数发生器    用   法:   int rand(void); 所在头文件: stdlib.h 函数说明 : rand()的 ...

  9. rand()函数100000随机数_利用随机函数Rand、Randbetween制作抽奖器应用技巧解读

    在Excel系统中,随机数函数有两个,分别为Rand和Randbetween,其作用也是不相同的,Rank函数的作用为生成0-1之间的随机数,而Randbetween函数的作用为生成指定范围内的随机数 ...

最新文章

  1. 610D - Vika and Segments(线段树+扫描线+离散化)
  2. java 折半_折半算法
  3. 汇编语言_实验九_根据材料编程
  4. 使用amaze ui的分页样式封装一个通用的JS分页控件
  5. python源码精要(5)-C代码规范
  6. 数据结构实验之图论九:最小生成树_每天5分钟用C#学习数据结构(25)图 Part 6
  7. 你在使用Gmail,Wallop,MSN Spaces,Three Degrees吗?
  8. VMware VDI部署攻略之四:域用户配置及验收
  9. 2018 KubeCon + CloudNativeCon完美落幕,行云献力
  10. linux如何建立隐藏目录,【Linux】文件与目录的默认权限与隐藏权限
  11. 谷歌“夜莺计划”秘密采集数百万美国人健康隐私;联发科首款7nm产能的5G芯片;2019年天猫双11落幕,最终成交额2684亿……...
  12. 2017 到 2018,PWA 技术到底经历了什么
  13. git 命令详解和Android Studio代码管理工具
  14. 软件项目管理案例教程(第3版)复习内容
  15. cocos2dx fnt字体制作
  16. 何宾 单片机原理及应用_单片机原理及应用课后答案讲解
  17. js实现简单的点名器随机色
  18. angular中的变更检测机制
  19. Minecraft 1.12.2模组开发(十九) 自定义3D物品模型
  20. 进程创建-终止-等待-替换

热门文章

  1. Web前端开发面试题---HTML+CSS
  2. [HDU3691 Nubulsa Expo]
  3. Docker+Jenkins+Gitlab+Django应用部署实践
  4. git合并指定文件到另一分支
  5. NVIDIA | 一种重建照片的 AI 图像技术
  6. 从零开始编写自己的C#框架(25)——网站部署
  7. 探索ASP.NET MVC5系列之~~~6.Session篇(进程外Session)
  8. warning: incompatible implicit declaration of built-in function ‘exit’
  9. 题解西电OJ (Problem 1008 - 数星星)
  10. link time code generation