Tag: 随机

Random(long)构造函数有什么用?

Random类有2个构造函数 public Random() public Random(long seed) 根据oracle的第二个构造函数的描述为 使用单个长种子创建新的随机数生成器。 种子是伪随机数生成器的内部状态的初始值,它由方法next(int)维护。 我完全不明白。 我没有找到任何明确解释原因 , 时间和方式的文章/书籍。 有人可以解释一下吗?

如何获取集合中的随机范围数

我有100条记录[1 – > 100],我想在这里随机获得50条记录,如何在java中做? 谢谢。

如何使用window.crypto.getRandomValues获取特定范围内的随机值

我们一直在使用Math.random获取4000-64000之间的随机数: Math.floor(Math.random() * 60000 + 4000); 我们现在必须使用更加加密的安全随机数生成器来替换它。 在搜索了这个问题后,我们决定使用window.crypto.getRandomValues。 我无法弄清楚如何使用它来获取特定范围之间的随机数。 有人可以帮忙吗?

Java随机数介于0和0.06之间

在Java中,我需要随机生成0到0.06之间的数字。 我在这里看到另一个问题,下面的代码可以解决这个问题: Random generator = new Random(); double number = generator.nextDouble() * .06; 然而,这样做给了我很长的数字,如0.007044013589130205和0.03656588431980957 ,我不认为这是我的导师正在寻找的。 反正有没有生成0到0.06之间只有两位或三位小数的随机数?

JAVA – 指数分布

我需要找到概率指数分布的公式,但我不知道如何找到它:(这个公式必须具有强大的统计属性(它不能丢弃随机的任何结果以保持随机实例的无差别搜索) 我试图找到公式,这将在这样的方法中工作: rand.getNextDuobleExpDistrib(); 我现在有这个代码,但根据“输入分析器”,它无法正常工作 public double getNext() { return -lampda * Math.log(rand.nextDouble()); }

服务响应速度慢时间:Java SecureRandom和/ dev / random

我正在尝试调试部署在Tomcat上的应用程序提供的一些慢响应。 现在我专注于SecureRandom和/dev/random (其他一些可能的原因已被调查并排除)。 模式如下: Tomcat重新启动后第一次调用需要30.0 xy秒(即使请求在启动后4分钟到达) 之后,一些调用只需要15.0 pq秒(没有我可以建立的特定模式, pq是TP99中所用的时间近似时间) 服务调用涉及加密和解密( AES / ECB / PKCS5Padding )。 SecureRandom init / repopulating是否可能导致这种情况发生? (尽管有一个用catalina.log编写的日志说”Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [28,760] milliseconds.” ) 另外,为了检查是否正在使用/dev/random或/dev/urandom ,我使用了这个问题的测试。 令我惊讶的是,我没有看到其中任何一个的读取,不像它在链接问题中发生的那样。 这些是strace日志中的最后几行: 3561 lstat(“/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre/lib/jsse.jar”, {st_mode=S_IFREG|0644, st_size=258525, …}) = 0 3561 open(“/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre/lib/jsse.jar”, O_RDONLY) = 6 3561 stat(“/dev/random”, {st_mode=S_IFCHR|0666, st_rdev=makedev(1, 8), […]

HashMap:以随机顺序迭代键值对

我有一个HashMap,我想在每次获得迭代器时以不同的随机顺序迭代它们的键值对。 从概念上讲,我想在调用迭代器之前“洗牌”地图(或者如果你想要,“洗牌”迭代器)。 我有两种选择: 1)使用LinkedHashMap的方法并在内部保留条目列表,将其随地移动并在调用迭代器时返回该视图。 2)取map.entrySet(),构造一个ArrayList并在其上使用shuffle()。 虽然这两种方法看起来很像我,但我期待非常大的HashMaps,所以我真的很关心细节和内部,因为我真的不能浪费内存或计算。

为什么2 ^ 31不能被n整除?

http://docs.oracle.com/javase/6/docs/api/java/util/Random.html#nextInt%28int%29说: 该算法有点棘手。 它拒绝会导致分布不均匀的值(由于2 ^ 31不能被n整除)。 值被拒绝的概率取决于n。 最坏的情况是n = 2 ^ 30 + 1,其中拒绝的概率是1/2,并且循环终止之前的预期迭代次数是2。 算法: int bits, val; do { bits = next(31); val = bits % n; } while (bits – val + (n-1) < 0); 该代码测试n > 2^30且bits > n 。 然后设置最高有效位并将条件中的结果转换为负值。 据我所知, bits最多为2^31-1 =>有50%的概率。 bits可以是<2 ^ 30或者在2 ^ 30和2 ^ 31之间 无论如何, 为什么2 […]

我应该播种SecureRandom吗?

在我们的代码库中找到以下代码: public static final int DEFAULT_LENGTH = 16; private static SecureRandom SR; static { try { SecureRandom sd0 = new SecureRandom(); SR = new SecureRandom(sd0.generateSeed(DEFAULT_LENGTH * 2)); } catch (Exception e){} } 这里创建了一个默认的SecureRandom ,然后用于为另一个创建种子,该种子将在稍后的类中使用。 这真的有必要吗? 第二个是否比第一个更好,因为这样做了? 当为第二个生成种子时,给出了字节数,这个重要吗? SecureRandom播种的字节数是否可能比其他字节更好或更差? 用于播种它的字节数是否应该与它将用于什么? 如果未调用setSeed,则对nextBytes的第一次调用将强制SecureRandom对象自行播种。 如果先前调用了setSeed,则不会发生这种自播种。 – javadoc 自播不够好吗? 它取决于它将用于什么? 注意:对于某些上下文,它在类中使用,为存储在数据库中的东西创建随机ID。

不同语言(即Java和C ++)中的“随机”生成器如何比较?

尽管标题很奇怪,我想问一个合理的问题:哪个方法生成的数字更随机 :Java的Random()类或Math.random() ,或C ++的rand() ? 我听说PHP的rand()非常糟糕,即如果你映射它的结果你可以清楚地看到一个模式; 遗憾的是,我不知道如何用C ++或Java绘制地图。 另外,只是出于兴趣,C#怎么样?