当前位置: 首页 > 面试题库 >

我可以使用python生成真实的随机数吗?

岳毅
2023-03-14
问题内容

我正在学习python的随机模块。而且我知道它会生成伪随机数。它的核心思想是使用高频时钟作为种子,然后使用一个函数来产生“看起来像”的随机数。

据我所知,在现实世界中甚至不可能生成真实的随机数。

但是我知道Unix随机产生器引入了其他一些因素,例如鼠标移动轨迹的参数,IO响应时间,从而给随机数产生器函数带来了不确定性。通过该方法,我们可以获得比普通伪随机数更好的随机数。很难预测。

那么,有没有一种方法可以在python中生成这样一个随机数,或者可以导入一个好的第三方库?


问题答案:

该文件的random模块有这样一段话:

警告
:出于安全目的,不应使用此模块的伪随机数生成器。如果需要加密安全的伪随机数生成器,请使用os.urandom()SystemRandom



 类似资料:
  • Python3 实例 以下实例演示了如何生成一个随机数:# -*- coding: UTF-8 -*- # Filename : test.py # author by : www.runoob.com # 生成 0 ~ 9 之间的随机数 # 导入 random(随机数) 模块 import random print(random.randint(0,9)) 执行以上代码输出结果为: 4 以上

  • 问题内容: 我正在阅读Math.random()javadoc,发现random只是psuedorandom。 是否有一个库(特别是java)根据随机变量(例如环境温度,CPU温度/电压等)生成随机数? 问题答案: 查看http://random.org/ RANDOM.ORG是一种真正的随机数服务,可通过大气噪​​声生成随机性。 可以在以下位置找到用于与其连接的Java库: http //sou

  • 问题内容: 我需要生成一个随机数。 看来该功能已不复存在。 我的选择是, 和 。 我在函数上找不到任何文档,头文件中也没有注释。 问题答案: ===== Swift 4.2 / Xcode 10 ===== 斯威夫特在引擎盖下用来完成工作。 ===== Swift 4.1 / Xcode 9 ===== 返回 0* 到 4294967295之间 的随机数 * 返回 0.0* 到 1.0 范围内的随

  • 问题 你需要生成在一定范围内的随机数,但你也需要对发生器进行“生成种子”操作来提供可预测的值。 解决方案 编写你自己的随机数生成器。当然有很多方法可以做到这一点,这里给出一个简单的示例。 该发生器绝对不可以以加密为目的! class Rand # 如果没有种子创建,使用当前时间作为种子 constructor: (@seed) -> # Knuth and Lewis' impro

  • 我一直在使用洗牌52张牌。有52个!(8.0658175e 67)可能性。然而,我发现是一个,在2^64(1.8446744e 19)时要小得多。 从这里,我怀疑是否真的是随机的;它真的能够产生所有52个!可能性吗? 如果不是,我如何可靠地生成一个更好的随机序列,可以产生所有52个!可能性?

  • 到目前为止,我知道TPM使用热噪声来生成真正的随机数。但是我也确信TPM使用更多的熵来源。因为击键计时、驱动寻道时间或时钟抖动都是可能的。但是TPM使用哪些来源?它是如何将它们转换成真正的随机数的?