编程实现对数据记录的随机抽样。给定概率p,依概率p对给定的数据集合进行随机抽样。
比如说现在在一个数组中存放了10000位同学的身高和体重信息,现在需要你对这100位同学以概率p=0.002进行抽样,随机取出这10000位同学中约20位同学的信息。
各位大哥请问有什么高招?感激不尽!

解决方案 »

  1.   


    import java.util.HashSet;
    import java.util.Random;
    public class Main {
    public static void main(String[] args) {
    //假设学生的编号是从1-10000
    HashSet<Integer> set = new HashSet<Integer>();
    Random random = new Random();

    while(set.size()<=20) {
    set.add(random.nextInt(10000) + 1);
    }

    System.out.println("随即取出来的20为同学的编号:");
    for(Integer i : set) {
    System.out.print(i + " ");
    }
    System.out.println();
    }
    }这里用最简单的方法实现了一个。