当前位置: 首页 > news >正文

计算机如何生成随机数? 什么是种子?

根据随机性的来源和原理,随机数主要分为伪随机数(Pseudo Random Numbers, PRNG)真随机数(True Random Numbers, TRNG) 两大类,伪随机数是计算机最常用的随机数类型。

1. 伪随机数(Pseudo Random Numbers, PRNG)

伪随机数不是“真正的随机数”,其本质是通过 “确定性算法” 生成的、看似随机的数列—— 通过一个初始种子 (seed) 和确定性的算法(比如线性同余、Mersenne Twister、Xorshift 等)生成一个数列,只要初始条件(“种子”)固定,生成的数列就完全固定,不具备真正的不确定性。

  • 种子: 随机数列的 “起点”,通常是一个整数。如果种子相同,无论何时、在何种设备上运行,生成的随机数序列都会完全一致

  • 算法: 对种子进行数学变换(如移位、取模、乘法逆元等),生成下一个 “随机数”,同时将该数作为下一次计算的 “新种子”,循环往复生成数列

伪随机数具有可预测性和周期性,为了让伪随机数 “更随机”,关键是让种子具备不确定性,即避免使用固定种子,而是从系统中提取 “动态变量” 作为种子,例如使用
当前系统时间做种子(精确到毫秒 / 微秒,如1696412345678);

2. 真随机数(True Random Numbers, TRNG)

真随机数的核心是从物理世界的 “天然不确定性” 中提取随机信息,其生成过程不依赖算法,也无法被预测或复现,具备真正的随机性。

真随机数的核心原理是提取物理世界的 “噪声”,通过硬件传感器捕捉这些噪声,再转化为二进制的随机数,如:电子噪声,环境噪声,量子现象等。

http://www.dtcms.com/a/442963.html

相关文章:

  • Qemu调试ARM64 linux内核 IOMMU(SMMU)驱动环境搭建
  • 正版宝安网站推广建设电子商务网站市场分析
  • Qt可执行文件打包全流程
  • 大庆免费网站建设公司网站开发平台是什么
  • 做网站用什么空间网络班级网站建设
  • UE5 小知识点 —— 10 - 鼠标操作
  • 西安英文网站建设安丘网站建设报价
  • llama.cpp:本地大模型推理的高性能 C++ 框架
  • 深入浅出kafka:kafka演进指南以及核心功能介绍
  • 天津网站模板建站注册账号怎么弄
  • 郑州网站推广培训设计模板ppt在哪里
  • JS-模块化
  • 商城网站都有什么功能做外贸的免费网站有哪些
  • TDengine 比较函数 IF 用户手册
  • C语言实现一个简易数据库
  • Oracle OCP认证考试题目详解082系列第45题
  • 3D绘图与交互式工具结合:Plotly与Bokeh深度解析
  • Java要被python取代了?3个技术维度拆分分析
  • 【软考-分析】
  • 站群软件想在网上卖货需要怎么做
  • 水果成篮_优选算法(C++)滑动窗口
  • dw网站建设字体颜色做超市dm的网站
  • 网站seo查询工具wordpress小工具页脚
  • PostIn入门到实战(7) - 如何快速调试websocket接口
  • 网站建设需求公司内部调查福田深圳网站建设
  • 如果自己建立网站做甲方去哪个网站应聘
  • 重要数据、长期存储 | 为什么要用机械硬盘?
  • 做木业网站怎样起名电商平台推广员是做什么的
  • 浙江省住房建设厅网站首页公司做网站的费属于广告费么
  • 卖汽车的网站怎么做网站一年费用多少钱