Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从java数组中获取非随机样本_Java_Arrays_Random_Shuffle_Sample - Fatal编程技术网

如何从java数组中获取非随机样本

如何从java数组中获取非随机样本,java,arrays,random,shuffle,sample,Java,Arrays,Random,Shuffle,Sample,假设我有一个包含200万ID的数组。现在我想检索这些ID的一个示例。目前,我使用了一个随机抽样,正如在这个问题的答案中提出的那样 这非常有效,但我现在如何检索一个非随机(或多或少是好的分布-不必100%相等)采样?在这种情况下,非随机意味着如果我使用相同的输入数组调用函数两次,那么两次都会得到相同的结果样本 我只是在SO和Google上做了很多研究,但在这个案例中找不到一种方法来帮助我。SO上的大多数方法似乎都处理随机抽样方法或增加性能步骤 我可以想象(但不知道是否有效)您总是使用相同的随机对象

假设我有一个包含200万ID的数组。现在我想检索这些ID的一个示例。目前,我使用了一个随机抽样,正如在这个问题的答案中提出的那样

这非常有效,但我现在如何检索一个非随机(或多或少是好的分布-不必100%相等)采样?在这种情况下,非随机意味着如果我使用相同的输入数组调用函数两次,那么两次都会得到相同的结果样本

我只是在SO和Google上做了很多研究,但在这个案例中找不到一种方法来帮助我。SO上的大多数方法似乎都处理随机抽样方法或增加性能步骤

我可以想象(但不知道是否有效)您总是使用相同的随机对象,但我不确定如何将其作为预期的java代码使用


非常感谢你和我分享的每一个想法和答案

将种子传递给RNG。与此相反:

Random rnd = new Random();
:


对于相同的种子值,来自RNG的值将是相同的。

因为如果输入相同的数组,您希望反复接收相同的结果;为什么不从数组中获取每N条记录?通过将数组除以所需的样本大小,可以轻松地计算n


但是,除非首先对数组进行排序,否则上述方法无法保证正确的分布。

这似乎可行,我现在将对其进行评估,以获得更大的规模:)
Random rnd = new Random();
Random rnd = new Random(12345l);