相关疑难解决方法(0)

从C#中的List <T>中选择N个随机元素

我需要一个快速算法从通用列表中选择5个随机元素.例如,我想从a获得5个随机元素List<string>.

c# random algorithm collections element

145
推荐指数
14
解决办法
11万
查看次数

从java中的结果集中获取随机子集

我有一组100个对象.如何从这个集合中获取5个对象的子集?

我现在正在这样做,但它只返回一个对象

          int size = memberSet.size();
      Set<Member> randomSet = new HashSet<Member>();
            int item = new Random().nextInt(size);
            int i = 0;
            for(Member mbr : memberSet)
            {
                if (i == item){
                    randomSet.add(mbr);
            }
                i = i + 1;
            }
Run Code Online (Sandbox Code Playgroud)

java random set

7
推荐指数
1
解决办法
5262
查看次数

从庞大的列表中进行高效的随机抽样

我有一个包含大量值(53,000,000+)的数据文件,我想提取这些值中n 个的随机子集(例如 2,000,000)。我实现了一个 Perl 脚本,它将列表拉入内存,使用Fisher-Yates 方法对数组进行洗牌,然后打印出洗牌列表中的前n个值。然而,即使在较小的测试集(50,000 个值)上,这种改组过程也需要花费大量时间。

我正在寻找一种更有效、可扩展的方法来识别大量值的随机子集并将其打印出来。有什么建议么?

更新:根据答案和更多搜索,看起来正确的术语是“随机采样”。

random performance sampling

5
推荐指数
1
解决办法
2204
查看次数

什么是在Java中选择随机种子的跨平台方式?

阅读此答案后: 从集合中选择随机子集的最佳方法是什么?

它让我想知道,如何在Java中选择随机种子?

并且不要说使用System.currentTimeMillis()或System.nanoTime().阅读文章,看看为什么不.

这是一个很难的问题,但让我更难.假设您需要生成随机种子而不连接到互联网,而不使用用户输入(IE,没有gui),并且它必须是跨平台的(因此没有JNI来访问硬件).

我们可以监视一些JVM变量作为我们随机性的来源吗?

可以这样做吗?还是不可能?

java random cross-platform random-seed

4
推荐指数
1
解决办法
924
查看次数