IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

标签:Random Number Generation

共 2 篇相关文章

IT 累计浏览 4,038

生成特定分布随机数的方法

这篇讲的是如何用均匀分布的随机数,生成高斯、指数等特定概率分布的随机数。作者从最基本的算法出发,深入剖析了Inverse Transform Method(逆变换法)和Acceptance-Rejection Method(接受-拒绝法)这两种经典方法的原理。 逆变换法的核心思想很巧妙:如果你能求出目标分布累积分布函数(CDF)的逆函数解析式,那么只需对一个均匀分布随机数进行逆变换,就能直接得到目标分布的随机数。文章以指数分布为例,清晰地展示了从CDF推导到Python实现的完整过程。 但逆变换法有局限,当CDF逆函数难以求解时怎么办?这就引出了接受-拒绝法。它的思路是先生成一个容易处理的提议分布,再通过一个“筛选”步骤,以一定的概率接受或拒绝样本,最终得到目标分布的样本。这种方法只需要知道目标分布的概率密度函数(PDF),适用范围更广。 除了这两种基础算法,文章还探讨了组合算法以及如何生成具有相关性的随机数等衍生方法,构建了一个较为完整的知识框架。

IT 累计浏览 3,362

PHP伪随机发生器

这篇讲的是PHP中两种看似都能生成随机数的函数,背后机制和适用场景却大不相同。作者从游戏开发中常见的“随机掉落”需求出发,深入剖析了`rand()`这类伪随机函数与`random_int()`真随机发生器的核心差异。 关键区别在于可预测性。伪随机函数基于确定的种子算法,相同种子必然产生相同序列,在需要不可预测性的安全场景(如生成密钥、验证码)下就存在隐患。而真随机发生器从操作系统收集熵(如硬件噪声),输出不可预测。 文章指出,在非安全敏感的业务逻辑、测试或模拟中,伪随机函数因其速度优势仍有一席之地。但只要涉及安全、加密或任何需要不可复现随机性的场合,就必须选择真随机发生器。理解这一根本差异,才能避免在项目中埋下安全隐患。