0

目的は、0 から N-1 までの M 個の整数のランダム サンプルを作成することです。

このコードをオンラインで見つけました (http://introcs.cs.princeton.edu/java/14array/Sample.java.html)

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

int[] perm = new int[N];
for (int i = 0; i < N; i++)
    perm[i] = i;

// create random sample in perm[0], perm[1], ..., perm[M-1]
for (int i = 0; i < M; i++)  {

    int r = i + (int) (Math.random() * (N-i));

    int t = perm[r];
    perm[r] = perm[i];
    perm[i] = t;
}

for (int i = 0; i < M; i++)
    System.out.print(perm[i] + " ");
System.out.println(); 

わずか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)));
4

0 に答える 0