Tag: 随机

如何确保随机数是唯一的而不是重复的?

我有一个生成随机数的简单代码 SecureRandom random = new SecureRandom(); … public int getRandomNumber(int maxValue) { return random.nextInt(maxValue); } 上面的方法大约被调用10次(不是循环)。 我想确保所有数字都是唯一的(假设maxValue > 1000 )。 我可以确定每次打电话都会得到唯一的号码吗? 如果没有,我该如何解决? 编辑:我可能含糊地说。 我想避免手动检查,如果我真的有唯一的数字,所以我想知道是否有更好的解决方案。

Java随机给出负数

如果我这样做,我遇到了Javas Random课程的问题: Random rng = new Random(seed) // seed == 29 in this example String ss = “”; for(int i = 0; i < 10; i++) { int s = rng.nextInt(); ss += Integer.toString(s); ss +="\n"; } 这就是我得到的回报: -1169335537 -2076183625 1478047223 1914482305 722089687 2094672350 -1234724057 -1614953544 -321574001 1000360613 从我所看到的,这应该只是回到正数开始? 这可能有点牵强,但它与在Windows 7 64位上运行64位机器无关? 任何帮助都是非常需要今天完成任务的完成!

如何拥有独特的随机数?

这就是我如何在1到6之间生成一个唯一的no并从drawable文件夹中获取适当的图像。 Random rand = new Random(); // n = the number of images, that start at idx 1 rndInt = rand.nextInt(6) + 1; String imgName = “card” + rndInt; int id = getResources().getIdentifier(imgName, “drawable”, getPackageName()); imgView.setImageResource(id); 我想要的是,我必须调用这个方法7次,每次这个方法都应该返回一个唯一的随机数。 所以没有一个已经选择的数字会再次出现。

java.util.Random.nextInt的实现

该函数来自java.util.Random 。 它返回一个在0和给定n之间均匀分布的伪随机int 。 不幸的是我没有得到它。 public int nextInt(int n) { if (n > 31); int bits, val; do { bits = next(31); val = bits % n; } while (bits – val + (n-1) < 0); return val; } 我的问题是: 为什么它特别处理n是2的幂的情况? 这仅仅是为了表现吗? 为什么它会拒绝bits – val + (n-1) < 0 ?

如何从Java中的Random中获取种子?

我正在为某个对象创建一个深层克隆。 该对象包含一个Random 。 从Random检索种子是一种好习惯吗? 如果是这样,怎么样? 没有Random.getSeed() 。

SecureRandom:init需要一次还是每次需要?

我们的团队使用SecureRandom生成密钥对列表(SecureRandom传递给KeyPairGenerator)。 我们无法就以下两个选项中的哪一个达成一致: 每次我们需要生成密钥对时创建一个新实例 初始化静态实例并将其用于所有密钥对 哪种方法通常更好, 为什么 ? 补充:我的直觉是第二种选择更安全。 但我唯一的论点是基于假设伪随机性是从当前时间戳得出的理论攻击:有人可能会看到密钥对的创建时间,猜测周围时间间隔内的时间戳,计算可能的伪随机序列,并获得关键材料。 补充:我对基于时间戳的确定性的假设是错误的。 这是Random和SecureRandom之间的区别。 因此,看起来答案是:就安全性而言,它并不重要。

Java正态分布

我正试图模拟球迷到达体育场的过程。 系统本身,我相信这不会是一个问题,但是,粉丝的到来遵循正常的分布。 我的问题是: 我有一段时间来到达,如100分钟和1000名粉丝,我需要在分发之后一次产生粉丝的到来,例如 – >粉丝x到达25分钟,粉丝到达54分钟,依此类推。 如何在正态分布后生成这些随机数? 我在Java中这样做,并在Random类中找到了nextGaussian()方法,但我不确定如何在我的情况下使用它。 有人可以赐教吗?

SecureRandom安全的Java种子

这段代码安全吗? SecureRandom randomizer = new SecureRandom(String.valueOf(new Date().getTime()).getBytes()); 这是实例安全随机种子的正确方法吗?

我该如何创建密码?

我想给一些用户提供一百万个密码: 它必须至少有6个字符 它必须有数字和字母 我应该在这里使用Random吗? 怎么样?

使用随机数发生器随机排列整数

这是我的家庭作业: Random r = new Random(); public int get100RandomNumber() { return 1+r.nextInt(100); } 您将获得一个名为getrand100()(上面)的预定义函数,该函数返回一个整数,该整数是1-100中的一个随机数。 您可以根据需要多次调用此函数,但要注意此函数是非常耗费资源的。 您不能使用任何其他随机生成器。 您无法更改getrand100()的定义。 输出:以随机顺序打印数字1-20。 (不是20个随机数) 我试过的.. public class MyClass { static Random r = new Random(); static HashSet; public static void main(String args[]) { myMethod(); System.out.println(s); } public static void myMethod() { boolean b = false; s = new HashSet(); int […]