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

Java的java.util.random可靠吗?[副本]

柯昆杰
2023-03-14

在我开始开发我的数学游戏(并且在不断地调整它之后把它交给测试者,但我仍然没有完成!)我使用的java.util.random及其方法nextInt()被转换为double可能不是我要找的可靠的救世主类。是为了给像我这样的应用程序生成随机数吗?//这个应用程序的目的是制作一个对所有人都具有挑战性的算术游戏,让你解决整数和浮点参数的问题。我的程序生成的最高数字是一个6位数,这是因为我使用了一些不同的逻辑来处理人类计算器(最高级别)的困难,即除法问题。我当时在考虑使用Mersenne twister算法,但我认为java.util.random使用的算法是这样的:http://docs.oracle.com/javase/7/docs/api/java/util/random.html#next%28int%29。

此外,我还想知道是否建议我使用类似new java.util.random(System.CurrentTimeMillis())的内容

共有1个答案

郜振国
2023-03-14

random的no-arg构造函数已经基于当前时间(通过它的cpu nanoTime,而不是UTC日期),所以只要创建它,每次就会得到一个不同的种子。种子random(long)版本(根据我的经验)主要用于需要可预测的输出时(例如,一些计算机游戏的过程生成例程允许玩家指定随机种子)

如果您非常担心随机数的随机性,您可能需要查看SecureRandom,对于加密等,推荐使用SecureRandom,而不是简单的random。这里有一个关于如何使用它的很好的解释,这里也有一个关于两者之间区别的很好的解释

 类似资料:
  • 当我在java中使用double和其他数字数据类型执行简单的数学运算时,double值似乎随机地与假定的结果略有不同,可能是559999997或6000000002或其他什么。当我转换为int时,double值显然会向下舍入到下一个整数。这是否意味着双精度可以同时为5或6?或者“59999999997”仍然计为6,尽管这取决于二进制浮点值?如果没有,是否有办法让负数向上舍入,但不能从5,5到599

  • 问题内容: 我知道比较两个时会有一些问题。看来这是一个更好的方法。好吧,我正在进行JUnit测试,我倾向于使用。这是断言两个字符串包含相同内容的可靠方法吗?我会使用,但是那样的话您就看不到预期的和实际的失败值。 在相关说明中,是否有人链接到页面或线程,这些链接清楚地说明了问题所在? 问题答案: 在Java中进行比较时应 始终 使用。 JUnit调用该方法以确定方法中的相等性。 因此,您绝对可以放心

  • 海蓝(navy blue)是最为大众所接受的颜色之一。采用这种颜色的色彩组合可解释成可靠、值得信赖的色彩。这类组合也带有不可置疑的权威感。警官、海军军官或法官都穿着深色、稳定的海军蓝,以便在值勤时表现出统率、支配的权威感。 当海军蓝用红和金色来强调时,会变得较不严肃,但仍表达出坚定、有力量的感觉。 补色色彩组合 原色色彩组合 单色色彩组合 21 65 17 65 33 1 65 67 70 65

  • 问题内容: 因为我不想自己做,所以我正在寻找Java的良好FFT实现。首先,我在这里使用了FFT Princeton的 这个,但是它使用了对象,而我的探查器告诉我,由于这个事实,它的速度并不是很快。所以我再次搜索了一下,发现了一个:更快的FFT Columbia 。也许你们中的一个知道另一种FFT实现?我想拥有“最好的”应用程序,因为我的应用程序必须处理大量的声音数据,并且用户不喜欢等待… ;-)

  • 问题内容: 2019年更新:自Bouncycastle 1.60起,Bouncycastle现在支持PBKDF2-HMAC- SHA256 JAVA是否有PBKDF2-HMAC-SHA256的可靠实现? 我曾经使用bouncycastle进行加密,但是它不提供PBKDF2WithHmacSHA256’。 我不想自己写加密模块。 您能推荐任何其他库或算法吗(如果我可以坚持使用bouncycastle

  • 问题内容: 我最近一直在尝试学习厨师,因为我打算使用它来部署服务器配置和服务器应用程序软件。我在理解如何使用其他人的食谱方面遇到问题。例如,我要部署JDK8u31。我无法弄清楚如何实现本食谱。https://supermarket.chef.io/cookbooks/java 我阅读了说明,然后看到以下内容 只需在需要安装Java的任何地方添加Java配方,例如运行列表(recipe [java]