草庐IT

java - 有效地选择随机数

我有一个方法,它使用随机样本来近似计算。此方法被调用了数百万次,因此选择随机数的过程是否高效非常重要。我不确定javasRandom().nextInt到底有多快,但我的程序似乎并没有像我希望的那样受益。选择随机数时,我执行以下操作(半伪代码)://Repeatthis300000timesSetset=newSet();while(set.length!=5)set.add(randomNumber(MIN,MAX));现在,这显然有一个糟糕的最坏情况运行时间,因为理论上的随机函数可以永远添加重复的数字,从而永远停留在while循环中。但是,这些数字是从{0..45}中选择的,因此在

java - 在java中获取特定范围内的随机数

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Java:generatingrandomnumberinarange我想用生成随机数java.util.Random(arg);唯一的问题是,该方法只能接受一个参数,因此数字始终介于0和我的参数之间。有没有办法生成(比如说)200到500之间的随机数?

Java:用 x 百分比的时间做某事

我需要几行Java代码来随机运行命令x%的时间。伪代码:booleanx=true10%ofcases.if(x){System.out.println("yougotlucky");} 最佳答案 你只需要这样的东西:Randomrand=newRandom();if(rand.nextInt(10)==0){System.out.println("yougotlucky");}这是一个衡量它的完整示例:importjava.util.Random;publicclassRand10{publicstaticvoidmain(Str

java - SecureRandom 的 Android 实现是否会产生真正的随机数?

我读过,一般来说,someimplementationsofSecureRandommayproducetruerandomnumbers.特别是Androiddocs说instancesofthisclasswillgenerateaninitialseedusinganinternalentropysource,suchas/dev/urandom但这是否意味着它会产生真正的随机数(即,而不是伪随机数)?如果我以这种方式在Android中使用SecureRandom...SecureRandomsr=newSecureRandom();...每当我调用sr.nextBoolean(

java - 随机类表现奇怪?

在这段代码中:Randomrandom=newRandom(441287210);for(inti=0;i每次输出都是1111111111。这是为什么?Random不应该是……嗯……随机的吗?我认为Random类使用System.nanoTime,因此输出通常应该是随机的。有人可以解释一下吗? 最佳答案 让它再打印几个,前100个是1111111111347226030284160002829892521145341418766065045560838974099779396450637498762898448490169615看起

java - 跨系统和版本的java伪随机数的再现性?

我需要生成一个受控的伪随机数序列,给定一个初始整数参数。为此,我使用标准的JavaRandom类,由一个整数参数作为种子。我想确保在可预见的future(以及更多!),我将跨系统(操作系统,以及Java/JDK版本)生成相同的序列。总结:Java是否确保其伪随机数生成器在实现和版本之间的再现性/可移植性?注意:我问过theexactsamequestionforPython.由于其他原因,我后来将实现语言更改为Java。 最佳答案 是的。javadoc解释:Aninstanceofthisclassisusedtogeneratea

java - 随机长,能不能连续两次是同一个数

我想知道Random类的当前java1.7实现,下面的代码是否有可能生成两倍相同的随机长度?Randomrand=newRandom((long)"someseed".hashCode());while(rand.nextLong()!=rand.nextLong()){}System.out.println("Willthistexteverbeontheconsole?");nextLong()和next()的Java源代码;publiclongnextLong(){return((long)next(32)>>(48-bits));}我会用false回答这个问题,因为我认为jav

java - Java中的12位唯一随机数生成

我正在开发一个应用程序,我们需要生成一些唯一的数字,实际上没有预定义的限制,所以使用javaUUD生成器并且工作正常。现在给我们一个生成12位唯一随机数的新需求。任何人都可以指出一些好的方法/算法来实现这一点,因为我在UUID生成的数字中看不到任何可能性。提前致谢 最佳答案 通过调用random.nextInt生成每个数字。为了唯一性,您可以通过将它们保存在一个集合中并检查该集合是否包含您每次生成的数字来跟踪您到目前为止使用的随机数。publicstaticlonggenerateRandom(intlength){Randomra

java - 在Java中你如何随机选择一个字母(a-z)?

如果我想随机选择a和z之间的一个字母,我假设我必须使用Random类:Randomrand=newRandom();但由于这只会生成数字,我需要做什么才能将其应用于字母? 最佳答案 Randomr=newRandom();charc=(char)(r.nextInt(26)+'a'); 关于java-在Java中你如何随机选择一个字母(a-z)?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/que

java - JUnit断言,值介于两个整数之间

我需要为我编写的算法编写JUnit测试,该算法输出两个已知值之间的随机整数。我需要一个JUnit测试(即assertEquals之类的测试)断言输出值介于(或不介于)这两个整数之间。即我有值5和10,输出将是5到10之间的随机值。如果测试为正,则数字介于两个值之间,否则不是。 最佳答案 @TestpublicvoidrandomTest(){intrandom=randomFunction();inthigh=10;intlow=5;assertTrue("Error,randomistoohigh",high>=random);a