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

获得第N个nextInt值的最快方法是什么?

姜森
2023-03-14

我必须找到每个数组元素的第N个nextInt。下面的代码真的很慢,因为数组元素超过40K,每个数组元素超过100万。

int[] numbers ={1000000,1004300,2204000,1306000...40k+};
for (int i = 0; i <numbers.length; i++) {
Random ran = new Random(1234);
    int nex = 0;
    for (int n = 0; n <numbers[i]; n++) {
        nex = ran.nextInt();
    }
    System.out.println("Next int value: " + nex);
}

有没有更快的方法得到第100万个Nextint?如果是,请怎么做?

共有1个答案

贲高寒
2023-03-14

你真的需要种子,让随机序列每次都一样吗?然后您可以对数字数组进行升序排序。然后,对于第二个元素,您不需要重置随机生成器,而可以继续您离开的地方。这样,您将不得不调用nextint的次数与数组中的最高次数相同,而不是400亿次

 类似资料:
  • 问题内容: 从对象开始时:将小时作为表现的最佳方法是什么? 我必须迭代几百万个日期,因此性能很重要。 通常情况下,我会得到以下小时,但是也许有更好的方法? 问题答案: 在UTC中: 要么

  • 问题内容: 如果您具有布尔变量: 我可以用if / else子句得到相反的结果: 有更简洁的方法吗? 问题答案: 只是用逻辑运算符不分配就像你会在你的条件语句来实现(,,…)。您已经在使用布尔值,因此它将翻转至(反之亦然):

  • 问题内容: 我尝试编写xpath表达式,以使我的测试不会因小的设计更改而中断。因此,我编写了自己的表达式,而不是Selenium IDE生成的表达式。 这是一个问题: 此表达式根本不起作用。名为“问题”的输入节点分布在整个页面上。他们不是兄弟姐妹。 我尝试使用中间表达式,但是也失败了。 这就是为什么我认为Seleniun具有错误的XPath实现。 根据XPath文档,位置谓词必须按 节点 集中的位

  • 问题内容: 在JavaScript中串联N个对象数组的最有效方法是什么? 数组是可变的,结果可以存储在输入数组之一中。 问题答案: 如果要连接两个以上的数组,那么这样做是为了方便和可能的性能。 对于仅连接两个数组,可以使用接受多个包含要添加到数组中的元素的参数的事实来代替将一个数组中的元素添加到另一个数组的末尾而不产生新数组。使用它也可以代替它,但是这样做似乎没有性能优势。 在ECMAScript

  • null field2和field3为空的所有字段 所有field2为空、field3为值的字段 所有field3为空、field2为值的字段 到目前为止,我已经使用了三个与UNION连接的查询 我自己觉得这是很多必要的代码来得到它的秩序,并希望有一个更好的解决方案。 那么有没有更好的办法呢?