2012-03-21 12 views

答えて

2
Random rnd = new Random(); 

int[] a = new int[200]; 
for (int i = 0; i < a.length; i++) 
    a[i] = i; 

int[] r = new int[15]; 
for (int i = 0; i < r.length; i++) { 
    int j = rnd.nextInt(a.length - i); 
    r[i] = a[j]; 
    a[j] = a[a.length - i - 1]; 
} 

これでいいはずです。ランダムから何かをつかむ。あなたがそれをつかんだら、それをaの "最後の"値と置き換えてください。 「最後」の値はa.lengthとiから簡単に導かれます。

+0

シンプルだけど効果的な...面白かった!! – Navdroid

+0

問題ありません。これはaを変更することを忘れないでください。 – Hounshell

3

Fisher-Yates shuffle。特に、最初の15要素をシャッフルして選択します。

+0

特に、最初の15要素をシャッフルして選択してください。 " - 申し訳ありませんが、私は実際にこの部分を取得しませんでした。どうしたらいいですか? – bezmax

+0

+1シャッフルは、順番に各セルのランダム要素を選択します。あなたは15を必要とするだけなので、15番目のセルを完了すると停止することができます。 –

+0

しかし、ダッシュはありません。 – aioobe

関連する問題