当前位置: 首页 > 知识库问答 >
问题:

随机性类型

邵畅
2023-03-14

Java常用的random库包括randomsecurerandom(我还看到ThreadLocalRandom)。还有其他人吗?我什么时候用每一个?有时我使用securerandom只是为了对我的简单数字感觉更好。事实证明,securerandom实际上允许您选择生成器。我该如何和什么时候使用这个?

最后,Java8提供了securerandom.getInstanceStrong()。我不知道这是什么,但它比以前的任何一个都要慢得多。应该如何以及何时使用Securerandom.GetInstanceStrong()?还有,慢是不是因为噪声源快用完了?

共有1个答案

李新霁
2023-03-14

random是可预测的,您只需要生成的数字的一个小序列,并且您可以在该序列中向前和向后遍历。关于反转序列的例子,请参见Java的随机函数的反函数。

securerandom不是。

ThreadLocalRandom试图修复Random不是线程安全的事实。

随机性可以用统计的方法来衡量--我在这里就不详细说了,有大量的资源可以解释如何做到这一点。

想出一种产生统计随机序列的算法是比较容易的。然而,如果您只是尝试统计随机性,并期望它是加密数据的好来源,那么您就大错特错了。您不妨使用:

private static int lastRandom = 0;

public static int nextRandom() {
  return ++lastRandom;
}

生成的序列可能不会通过统计测试的随机性,但它是可以预测的。

 类似资料:
  • 在前面的章节中,我们开发了深入描述数据所需的技能。 数据科学家也必须能够理解随机性。 例如,他们必须能够随机将个体分配到实验组和对照组,然后试图说明,观察到的两组结果之间的差异是否仅仅是由于随机分配,或真正由于实验所致。 在这一章中,我们开始分析随机性。 首先,我们将使用 Python 进行随机选择。 在numpy中有一个叫做random的子模块,它包含许多涉及随机选择的函数。 其中一个函数称为c

  • 尽管在阅读了许多关于的文章之后,我遇到了一个关于在Java中使用安全API的疑问。在下面的示例中。 } 谁能让我知道我在这里做的是对的吗?

  • 我正在尝试模拟我在上面发现的数学难题http://blog.xkcd.com/2010/02/09/math-puzzle/.然而,java random类返回了奇怪的结果。在下面的代码中,结果是预期的。第一行的输出大约为.612,第二行的输出介于.49和.51之间。int试验=10000000;int成功=0; 然而,当我切换 到 第一个数字的输出约为 .476,第二个数字的输出约为 .710。

  • 条件随机场(Conditional Random Fields, 以下简称CRF)是给定一组输入序列条件下另一组输出序列的条件概率分布模型,在自然语言处理中得到了广泛应用。本系列主要关注于CRF的特殊形式:线性链(Linear chain) CRF。本文关注与CRF的模型基础。 1.什么样的问题需要CRF模型 和HMM类似,在讨论CRF之前,我们来看看什么样的问题需要CRF模型。这里举一个简单的例

  • 我想看看哪个随机数生成器包在我的神经网络中更快。 我目前正在更改github的一个代码,其中两个都是numpy。随机和随机包用于生成随机整数、随机选择、随机样本等。 我之所以更改此代码,是因为出于研究目的,我希望设置一个全局种子,以便能够比较超参数不同设置的精度性能。问题是,现在我必须为随机包和numpy包设置两个全局种子。理想情况下,我只想设置一个种子,因为来自两个随机数生成器序列的图形可能会更

  • 问题内容: 在此代码中: 每次输出为。 为什么是这样?不应该…好吧…随机吗?我认为该类使用,因此输出通常应该是随机的。有人可以解释一下吗? 问题答案: 由类生成的值是 伪随机的 :它们是基于种子值使用确定性算法创建的。通常,(例如,如果使用无参数的构造函数)种子是使用当前时间初始化的,这显然是唯一的值。因此,生成了唯一的“随机”序列。 在这里,您使用的是恒定的种子值,该值在代码执行之间不会改变。因