回答編集履歴
1
手順説明部に番号リストを使用するよう修正
test
CHANGED
@@ -16,24 +16,22 @@
|
|
16
16
|
|
17
17
|
そして、同じ数字を持たない4個の数字を生成する方法ですが、以下のように処理するのが、無駄な重複リトライをしなくてすむのでスマートだと思います。
|
18
18
|
|
19
|
-
|
19
|
+
0. まず、0-9までの数字が順番に入っている10個の要素を持つ配列(numbers)を作成します。
|
20
20
|
|
21
|
-
|
21
|
+
0. 0-9の範囲のランダム値(r)を取得します。
|
22
22
|
|
23
|
-
|
23
|
+
0. numbersのr番目の要素を1個目の数字とし、その要素をnumbersから削除します。(残る要素数は9個です)
|
24
24
|
|
25
|
-
|
25
|
+
0. 0-8の範囲のランダム値(r)を取得します。
|
26
26
|
|
27
|
-
|
27
|
+
0. numbersのr番目の要素を2個目の数字とし、その要素をnumbersから削除します。(残る要素数は8個です)
|
28
28
|
|
29
|
-
|
29
|
+
0. 0-7の範囲のランダム値(r)を取得します。
|
30
30
|
|
31
|
-
|
31
|
+
0. numbersのr番目の要素を3個目の数字とし、その要素をnumbersから削除します。(残る要素数は7個です)
|
32
32
|
|
33
|
-
|
33
|
+
0. 0-6の範囲のランダム値(r)を取得します。
|
34
34
|
|
35
|
-
|
35
|
+
0. numbersのr番目の要素を4個目の数字とします。
|
36
|
-
|
37
|
-
|
38
36
|
|
39
37
|
数字を4個取り出せばいいだけなので、わかりやすいよう1個ずつ順番に全部書きましたが、やりたいことがわかれば4回ループで処理すれば簡潔に記述できます。
|