美文网首页
19.linux中使用随机数

19.linux中使用随机数

作者: 辉神来了 | 来源:发表于2019-11-15 11:35 被阅读0次
随机数和伪随机数
  • 随机数是随机出现,没有任何规律的一组数列。
  • 真正的完全随机的数列是不存在的,只是一种理想情况。我们平时要用到随机数时一般只能通过一些算法得到一个伪随机数序列。
  • 我们平时说到随机数,基本都指的是伪随机数。
linux中随机数相关API
  • 连续多次调用rand函数可以返回一个伪随机数序列
  • srand函数用来设置rand获取的伪随机序列的种子

实战演示

  • 单纯使用rand重复调用n次,就会得到一个0-RAND_MAX之间的伪随机数,如果需要调整范围,可以得到随机数序列后再进行计算。
  • 单纯使用rand来得到伪随机数序列有缺陷,每次执行程序得到的伪随机序列是同一个序列,没法得到其他序列
  • 原因是因为rand内部的算法其实是通过一个种子(seed,其实就是一个原始参数,int类型),rand内部默认是使用1作为seed的,种子一定的算法也是一定的,那么每次得到的伪随机序列肯定是同一个。
  • 所以要想每次执行这个程序获取的伪随机序列不同,则每次都要给不同的种子。用srand函数来设置种子。
总结和说明
  • 在每次执行程序时,先用srand设置一个不同的种子,然后再多次调用rand获取一个伪随机序列,这样就可以每次都得到一个不同的伪随机序列。
  • 一般常规做法是用time函数的返回值来做srand的参数。
在linux系统中获取真正的随机数
  • linux系统收集系统中的一些随机发生的事件的时间(譬如有人动鼠标,譬如触摸屏的操作和坐标等)作为随机种子去生成随机数序列。

相关文章

  • 19.linux中使用随机数

    随机数和伪随机数 随机数是随机出现,没有任何规律的一组数列。 真正的完全随机的数列是不存在的,只是一种理想情况。我...

  • Excel怎么生成随机数?

    Excel怎么生成随机数?如何生成指定范围内的随机数呢?可以在Excel中使用函数,生成随机数。 1、在单元格中输...

  • 密码技术(十二)之随机数

    随机数    ———— 不可预测的源泉 使用随机数的密码技术  随机数的使用场景,比如: 生成密钥 用于对称密码和...

  • 14 随机数生成器

    14.1 介绍 很多密码学系统需要使用到随机数。目前为止,本书只是假设可以获取到随机数。本章将介绍密码学中的随机数...

  • java.lang.IllegalArgumentExcepti

    这是因为使用了java中的随机数所致,Random().nextInt(n)表示为0~n之间的随机数,但是不等于n...

  • iOS - 随机数及数组随机取元素

    这里记录一下Objective-C随机数以及随机数在数组中的使用。 arc4random() 这个貌似是最好用的,...

  • 使用random实现随机动画

    使用随机颜色,随机位置,实现动画 生成随机数方案 传统方式 使用随机数方式 特殊方式 使用random结合toSt...

  • Objective-C 随机数及数组随机取元素

    里记录一下Objective-C随机数以及随机数在数组中的使用。 arc4random() 这个貌似是最好用的,听...

  • 无处不在的随机数

    目录: 什么是随机数 随机数分类 伪随机数生成器 真随机数生成器 各种语言中的随机数 使用系统时间作为种子是否安全...

  • 概率算法

    一. 生成随机数(可设定范围) 使用C#自带类System.Radom(int seed),来生成随机数,使用Gu...

网友评论

      本文标题:19.linux中使用随机数

      本文链接:https://www.haomeiwen.com/subject/wpijictx.html