2019独角兽企业重金招聘Python工程师标准>>>

###运行程序看效果

#include <iostream>using namespace std;
/* 测试随机数,种子是随机的,得出的随机数是固定的 */
void testRandom(){  srandom(1);  printf("RAND_MAX=%d\n",RAND_MAX);  for(int i=0;i<10;i++){  printf("i=%d random value=%ld \n",i+1,random());  }
}  /* 测试随机数,种子是随机的,得出的随机数是不固定的 */
void testRandom2(){  srandom(time(NULL));  printf("RAND_MAX=%d\n",RAND_MAX);  for(int i=0;i<10;i++){  printf("i=%d random value=%ld \n",i+1,random());  }
} int main(int argc, char *argv[]) {testRandom();testRandom2();
}

执行程序两次 看效果

###解析 总结

1、生产随机数需要种子(Seed),且如果种子固定,random()每次运行生成的随机数(其实是伪随机数)也是固定的;因为返回的随机数是根据稳定的算法得出的稳定结果序列,并且Seed就是这个算法开始计算的第一个值。
2、srandom()可以设定种子,比如srandom(0) 、srandom(1)等等。如果srandom设定了一个固定的种子,那么random得出的随机数就是固定的;如果程序运行时通过srandom(time(NULL))设定种子为随机的,那么random()每次生成的随机数就是非固定的了。

###运用

//需要使用随机值的时候 一定要记住设置srandom的种子srandom((unsigned int)time(NULL));- (void)viewDidLoad {[super viewDidLoad];//使随机值固定srandom((unsigned int)time(NULL));self.devices = [@[] mutableCopy];
}
```###关于随机性```
假如你想产生 1 ------10 之间的一个随机数, 你应该像下面这样编码j = 1 + (int) (10.0 * (rand() / (RAND_MAX + 1.0)));而不是下面这样的代码j = 1 + (rand() % 10);结论:
如果你使用 srandom 种植种子, 则你应该使用 random 返回随机数,
如果你使用 srand 种植种子, 则你应该使用rand返回随机数。不过srand和rand官方已经不推荐使用。原因是产生随机数的性能不是很好,
另外是随机数的随机性没有random好,再者就是不是线程安全。
```

转载于:https://my.oschina.net/kshopping/blog/706261

【随机数】深入理解random和srandom相关推荐

  1. Java中的随机数生成器:Random,ThreadLocalRandom,SecureRandom

    Java中的随机数生成器:Random,ThreadLocalRandom,SecureRandom 文中的 Random即:java.util.Random, ThreadLocalRandom 即 ...

  2. 获取随机数的方式Random类对象的方法 java 0913

    获取随机数的方式Random类对象的方法 java 0913 Random类 实例化这个类得到一个对象 利用对象的方法获取整数 代码 import java.util.Random;public cl ...

  3. java 生成随机数(利用Random生成任意范围的随机数)

    目录 一.为什么需要这种方法? 二.方法思路 1.头尾相减 2.尾巴+1 3.最终的结果加上初始的首个数字 代码 运行结果 一.为什么需要这种方法? Random函数只能限制生成随机数的区间的末尾是多 ...

  4. python生成固定长度随机数_python日记——random模块

    random random模块用于生成伪随机数. 真正意义上的随机数(或者随机事件)是按照实验过程中表现的分布概率随机产生的,其结果是不可预测的.而计算机中的随机数是所谓的随机函数按照一定算法模拟产生 ...

  5. python随机产生10个随机数_python(random模块)取10以内的随机数

    原博文 2018-01-21 15:56 − 上面有个selenium-webdriver循环点击百度搜索结果以及获取新页面的handler文章,随机获取百度搜索结果中不同id的结果,实现代码如下: ...

  6. C++11中随机数生成器(random)

    目录 1 随机数生成器的分类 2 随机数据引擎 2.1 线性同余法引擎 2.2 梅森旋转法引擎 2.3 滞后Fibonacci引擎 2.4 非确定随机生成器 2.5 默认随机数引擎 3 随机数适配器 ...

  7. python中uniform randint_Python 随机数函数(random,uniform,randint,randrange,shuffle,sample)...

    random.random random.random()用于生成一个0到1的随机符点数: 0 <= n < 1.0 描述 random() 方法返回随机生成的一个实数,它在[0,1)范围 ...

  8. js随机数的理解以及应用

    1.如果要生成以0开始的一个随机数 公式:Math.random() var a=Math.random() console.log(a)//得到的是0-1的随机小数 2.如果要生成以0开始的一个随机 ...

  9. c语言怎么产生随机数函数,详细介绍一下C语言里面的随机数产生函数random怎么用...

    匿名用户 1级 2013-11-24 回答 rand()函数可以用来产生随机数e799bee5baa6e79fa5e98193e4b893e5b19e31333332643334,但是这不是真真意义上 ...

  10. python生成泊松分布随机数_Python Numpy random.poisson() 泊松分布

    1.泊松分布 泊松分布是离散分布. 它估计一个事件在指定时间内可能发生的次数.如果一个人一天吃两次饭,他吃三次饭的可能性有多大? 它有两个参数: lam-发生率或已知次数,例如 上述问题2. size ...

最新文章

  1. 开启报名 | 青源 Salon 第 1 期:强化学习专场,报告,海报,激辩,这是年轻人的会场
  2. java自学难点_java学习重难点
  3. js按位运算符及其妙用
  4. 数论初步——同余与模算术
  5. python打开360浏览器_python selenium使用360浏览器出现新皮肤设置怎么办?
  6. ubuntu中安装jdk
  7. t580 thinkpad_聊聊ThinkPad T580:除了大屏,还有什么
  8. 用 cctld工具创建带有国家代码的IP地址表
  9. css :after和:before
  10. 基于pytorch实现图像分类——理解自动求导、计算图、静态图、动态图、pytorch入门
  11. [Java] 蓝桥杯ALGO-63 算法训练 乘法表
  12. Java事件的垃圾回收机制和跳出多重循环
  13. ASP.NET OAuth:解决refresh token无法刷新access token的问题
  14. zhaow游戏知识问答
  15. 【第2篇】人工智能(AI)语音测试原理和实践
  16. 使用APICloud AVM多端框架开发app通讯录功能
  17. C语言实现反汇编【微机原理】
  18. Jquery 实现 qq迷你首页 切换效果
  19. oracle dbms_lob trim,Oracle - DBMS_LOB函数和用法
  20. 【Day4.1】打的士去卧佛寺

热门文章

  1. php遍历目录与文件夹的多种方法详解
  2. 消费者反映鸡蛋难吃后的37种回答方法
  3. Android 学习之逐帧动画(Frame)
  4. ffmpeg1.2的filter分析
  5. Linux虚拟文件系统(节点路径搜索)
  6. linux在多核处理器上的负载均衡原理(2)
  7. linux应用编程--思维导图
  8. Just Pour the Water ZOJ - 2974 (矩阵快速幂)
  9. mysql 查询polygon_如何通过mysql 判断点是否在指定多边形区域内
  10. python设计选择题代码_《Python程序的设计》试题库完整