伪随机数和随机数种子

2024-02-23 12:48
文章标签 随机数 种子

本文主要是介绍伪随机数和随机数种子,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

随机数种子 + 伪随机数生成器 = 伪随机数生成

同样的随机数种子和同样的生成器总是生成同样的序列。

伪随机数是有周期的,多次运行后结果会出现重复。


真正的随机数必须使用专门的设备,比如热噪信号、量子力学的效应、放射性元素的衰退辐射,或使用无法预测的现象,譬如用户按键盘的位置与速度、用户运动鼠标的路径坐标等来产生。

来自 <https://zh.wikipedia.org/wiki/%E4%BC%AA%E9%9A%8F%E6%9C%BA%E6%80%A7>


真随机数生成网站

这个网站可以免费提供真随机数的服务,并且可以自己设置上下限,通常用于重要场合。

来自 <https://blog.csdn.net/czc1997/article/details/78167705>


真随机数图像:

 

伪随机数图像:

 

来自 <https://blog.csdn.net/czc1997/article/details/78167705>


随机数下一个严密的定义很难。只能从性质去区分一些随机数的种类。

  • 随机性 —— 不存在统计学偏差,是完全杂乱的数列
  • 不可预测性 —— 不能从过去的数列推测出下一个出现的数
  • 不可重现性 —— 除非将数列本身保存下来,否则不能重现相同的数列

随机性

不可预测性

不可重现性

 

备注

生成器

 

弱伪随机数

只具备随机性

不可用于密码技术❌

伪随机数生成器 PRNG (Preudo Random Number Generator)

强伪随机数

具备不可预测性

可用于密码技术✅

密码学伪随机数生成器 CPRNG (Cryptography secure Preudo Random Number Generator)

真随机数

具备不可重现性

可用于密码技术✅

真随机数生成器 TRNG (True Random Number Generator)

来自 <https://halfrost.com/random_number/>

这篇关于伪随机数和随机数种子的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/738690

相关文章

明明的随机数处理问题分析与解决方案

明明的随机数处理问题分析与解决方案 引言问题描述解决方案数据结构设计具体步骤伪代码C语言实现详细解释读取输入去重操作排序操作输出结果复杂度分析 引言 明明生成了N个1到500之间的随机整数,我们需要对这些整数进行处理,删去重复的数字,然后进行排序并输出结果。本文将详细讲解如何通过算法、数据结构以及C语言来解决这个问题。我们将会使用数组和哈希表来实现去重操作,再利用排序算法对结果

Java生成随机数工具类,进制之间的转换工具类,获取指定时间,时间格式转换工具类

废话不多说,贡献一下code 1.编号生成工具 import org.apache.commons.lang3.StringUtils;import java.math.BigInteger;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Random;/*** 编号生成工具*/@

Cocos2dx 3.0 过渡篇(五) 随机数的获取

1、简单的随机数用法:CCRANDOM_0_1 示例如下: [cpp] int HelloWorld::getRand(int start,int end)  {   float i = CCRANDOM_0_1()*(end-start+1)+start;  //产生一个从start到end间的随机数   return (int)i;  }   2、上述的方法虽然简便,但是运行

(php伪随机数生成)[GWCTF 2019]枯燥的抽奖

审核源码发现加载check.php,审计发现使用了mt_rand()函数,这个函数生成的值是伪随机的 参考下面这篇文章 PHP mt_rand安全杂谈及应用场景详解 - FreeBuf网络安全行业门户 kali里面输入下载工具 git clone https://github.com/openwall/php_mt_seed.git cd进去输入make后编译出的文件先

针对大数据的种子点生长——分块生长的策略

前言   在之前的种子点生长系列中,探讨了使用三种提取图像中内容部分种子点生长算法,分别是泛洪法、扫描线法和区段法。我们知道这三种算法在空间上都需要占用三维图像的空间以及相应的位图标记表的空间。有时,我们需要处理一些体积相当大的数据,这些数据都是内存中无法放下的,如数十数百GB的数据,想要获得其中图像内容信息,一般需要对图像进行分块生长。   本文使用一种比较直接的思路对数据进行分块,然

STM32G474之随机数发生器

STM32G474一个RNG设备,它能提供由“集成模拟电路”生成的32位随机数,是硬件随机数发生器。在C语言中,若包含头文件“stdlib.h”,我们就可以使用有rand()函数,它是C语言中用于生成随机数的函数。 1、“随机数”的应用 1)、一般用“随机数”作为延时函数的传递参数,来获取不同的延时时间。在多主机通讯系统中,要求时间同步采集数据,但是数据传输,若发生在同一时刻,通讯就会发生碰撞

取Random范围内的随机数

Random rand = new Random();        int m = rand.nextInt(); //int范围类的随机数        int n = rand.nextInt(100); //0-100范围内的随机数      包含0,不包含100.

linux 随机数生成原理

简介 在信息学中,信息熵是用来描述系统混乱无序程度的物理量;系统的熵越大,系统就越无序,所含有用信息量越少,不确定度越大。 Linux内核中有一个熵池设备,专门收集来自系统环境的一些噪音,来产生高质量随机数序列;这些噪声主要来自于硬件设备发生中断的时间,用户点击鼠标的时间间隔,硬件噪声,磁盘活动等 /dev/random与/dev/urandom 这两个字符设备文件都是利用Linux内

SQL循环生成随机数

DECLARE @i INTDECLARE @dian DECIMAL(7,2)SET @i = 1WHILE @i < 40BEGINSET @dian = rand()*1000INSERT INTO tbl_energy_electricity_hour_201701([value])VALUES(CAST(@dian AS DECIMAL(7,2)))SET @i = @i + 1end

NumPy(二):创建数组【生成固定范围的数组:arange、linspace】【生成0和1的数组:zeros()等】【从现有数组生成:array、asarray】【生成随机数组:np.random】

生成0和1的数组 np.ones()np.ones_like()从现有数组中生成 np.array – 深拷贝np.asarray – 浅拷贝 生成固定范围数组 np.linspace() nun – 生成等间隔的多少个 np.arange() step – 每间隔多少生成数据 np.logspace() 生成以10的N次幂的数据 生成随机数组 正态分布 里面需要关注的参数:均值:u