Java 创建N中的M的随机样本

Java 创建N中的M的随机样本,java,random-sample,Java,Random Sample,目标是创建从0到N-1的M个整数的随机样本 我在网上找到了这个代码(http://introcs.cs.princeton.edu/java/14array/Sample.java.html) int M=Integer.parseInt(args[0]);//选择这许多元素 int N=Integer.parseInt(args[1]);//从0,1,…,N-1 int[]perm=新的int[N]; 对于(int i=0;i

目标是创建从0到N-1的M个整数的随机样本

我在网上找到了这个代码(http://introcs.cs.princeton.edu/java/14array/Sample.java.html)

int M=Integer.parseInt(args[0]);//选择这许多元素
int N=Integer.parseInt(args[1]);//从0,1,…,N-1
int[]perm=新的int[N];
对于(int i=0;i
我不明白使用数组的必要性,因为你只需要4行就可以做到这一点

    int M = Integer.parseInt(args[0]);    // choose this many elements
    int N = Integer.parseInt(args[1]);    // from 0, 1, ..., N-1

    for(int i=0; i<M; i++)
        System.out.println(i + (int) (Math.random() * (N-i)));
int M=Integer.parseInt(args[0]);//选择这许多元素
int N=Integer.parseInt(args[1]);//从0,1,…,N-1

对于(int i=0;i)您的方法可能有重复项,但是
Collections.shuffle()
应该可以工作。您没有回答所取的数字是否有替换项-注意:如果没有替换项,则N>=M
    int M = Integer.parseInt(args[0]);    // choose this many elements
    int N = Integer.parseInt(args[1]);    // from 0, 1, ..., N-1

    for(int i=0; i<M; i++)
        System.out.println(i + (int) (Math.random() * (N-i)));