草庐IT

java - 在 java 中跨平台地在没有时间的情况下播种随机生成器

我几乎同时在两个线程上初始化两个随机数生成器,我希望这两个生成器的行为完全不同。我会经常一个接一个地在两个生成器上调用Random.nextInt(7)。使用System.currentTimeMillis()不是一个好主意,因为看起来我的计算机速度如此之快,以至于我从两个生成器获得的数字很可能是相同的。那么有什么方法可以配置Random,这样尽管它们一个接一个地被调用,但它们的行为仍然不同?我希望该解决方案是跨平台兼容的,因此任何特定于平台的想法(例如从/dev/random读取)都是NotAcceptable。感谢您的帮助。 最佳答案

java - 生成多个范围之间的随机数

我了解如何生成介于两个数字之间的随机数:1+(int)(Math.random()*((10-1)+1))或min+(int)(Math.random()*((max-min)+1))但是我该如何生成一个落入多个范围内的随机数呢?例如:数字可以在1到10之间,也可以在50到60之间 最佳答案 我会选择这样的东西,让您可以根据需要使用任意多的范围:importjava.util.ArrayList;importjava.util.List;importjava.util.Random;classRandomInRanges{priva

java - 运行 Google Compute Engine 实例的 GAE 开发服务器 <phew>

我正在尝试在Google计算实例上为GoogleAppEngine运行本地开发服务器(java)。(我们使用计算引擎实例作为测试服务器)。当尝试使用appcfg.sh启动开发服务器时,我们注意到在90%的情况下,服务器不会启动并在最终启动前挂起10分钟。我知道服务器还没有启动,因为当它挂起时,这行永远不会打印到控制台:Serverdefaultisrunningathttp://localhost:8080/有人见过这样的东西吗? 最佳答案 简而言之:-AppEnginejavaSDK使用jetty作为开发应用服务器的servlet

java - 生成 '1'位比例可变的随机二进制数

我需要一个函数来生成随机整数。(现在假定Javalong类型,但稍后将扩展为BigInteger或BitSet。)棘手的部分是有一个参数P指定结果中任何位为1的(独立)概率。如果P=0.5,那么我们可以只使用标准随机数生成器。P的一些其他值也很容易实现。这是一个不完整的例子:Randomrandom=newRandom();//...longnextLong(floatp){if(p==0.0f)return0L;elseif(p==1.0f)return-1L;elseif(p==0.5f)returnrandom.nextLong();elseif(p==0.25f)returnn

java - Java中的随机枢轴快速排序

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:QuickSortwithrandompivotinJava下面写的快速排序代码以数组的第一个元素为基准,然后对数组进行排序。现在我想随机选择枢轴而不是第一个,然后对数组进行排序,但我卡住了,请告诉我我可以在下面的代码中进行哪些更改以获得完美的结果。importjava.util.*;importjavax.swing.JOptionPane;publicclassQuicksort{publicstaticvoidmain(String[]args){Stringarraylength=JOptionPan

java - 使用概率分布生成范围内的随机整数

我有一个问题,我想使用概率分布生成一组介于1和5之间的随机整数值。Poisson和InverseGamma是两个分布,它们显示了我所找到的特征(多数为平均值,较少的较高数字)。我正在考虑使用ApacheCommonsMath但我不确定如何使用可用的分布生成我想要的数字。 最佳答案 根据您的问题描述,听起来您实际上想要一个从离散概率分布生成的样本,您可以使用EnumeratedIntegerDistribution以此目的。为你的每个整数选择合适的概率,也许像下面这样的东西会满足你的需要:int[]numsToGenerate=new

java - 从 1-50 的生成器生成 1-100 的随机数

在最近的一次采访中,有人问我以下问题:Printrandomnumbersfrom1-100usingthegivengetrnd50()methodwhichgeneratestherandomnumbersfrom1-50.Eachrandomnumbershouldbeprintedonlyonceandinrandomorder.Useofnootherrandomnumbergeneratorisallowedandiwasnotallowedtochangethedefinitionofgetrnd50().我想出了下面的代码,它给出了正确的输出。importjava.ut

java - 使用具有当前时间的随机数生成器与不使用

我想了解使用以System.currentTimeMillis()作为种子的随机数生成器与仅使用默认构造函数之间的区别。也就是说,这之间有什么区别:Randomrand=newRandom(System.currentTimeMillis());还有这个:Randomrand=newRandom();我知道这些数字是伪随机的,但我还没有完全理解细节,以及它们是如何产生的,介于将当前时间用作种子时获得的“随机性”级别与默认时间之间使用构造函数。 最佳答案 提供您自己的种子对于您有意多次生成相同的伪随机值序列的模拟非常有用。不过,一般来

java - 大气噪声和生成随机数java

我很想知道如何使用大气噪声来生成真正的随机数。我知道RANDOM.ORG会这样做,但他们(当然)没有解释流程是什么以及如何实现。我想知道这个过程是如何工作的以及如何将它实现到java中。我调查了这个article但它适用于.net,所以我不明白。我还查看了RANDOM.ORGarticleontruerandomness.如果有人能给我一个关于这项工作的总体思路以及如何实现,将不胜感激。 最佳答案 如果您在过去一年的某个时间购买了一台计算机,很有可能它的CPU中直接嵌入了真正的随机数生成器。这在英特尔开始发货时可用IvyBridge

java - SecureRandom 中 nextXXX() 和 generateSeed() 函数之间的区别?

函数nextXXX()之间有什么区别-例如nextInt()、nextFloat()和nextBytes()-和generateSeed(intnumBytes):byte[]在SecureRandomclassJava的?generateSeed中的“种子生成算法”与安全随机生成器本身有何不同? 最佳答案 generateSeed()不使用随机数生成器生成的任何字节。相反,它只是传递给SecureRandom实现用来为自己播种的熵源,如果它正在为自己播种。例如,在Oracle提供的JavaSE上调用以下代码://initSeedi