回答編集履歴
3
削除
test
CHANGED
@@ -1,39 +1 @@
|
|
1
|
-
コードは見ていません。極簡単な、考え方だけ、
|
2
|
-
|
3
|
-
前提:コンピュータで実装されている乱数は、速度の都合もあり、正規乱数ではありません。
|
4
|
-
|
5
|
-
乱数であれば、同じ数が来るのも、確率としては、ありです。
|
6
|
-
|
7
|
-
ですので、一意の重ならない数を得る場合は、直接は乱数を使いません。
|
8
|
-
|
9
|
-
簡単な、くじ引き程度:1~1000個の場合は、トランプのシャッフルの考えを応用します。
|
10
|
-
|
11
|
-
実際のトランプ、ゲームソフトのトランプのシャッフルでは、ゲームにならなくなるので、
|
12
|
-
|
13
|
-
完全に混ぜたりはしません。
|
14
|
-
|
15
|
-
1.10~1000個程度の重ならない、数を用意します。
|
16
|
-
|
17
|
-
10個程度でテストしてから、多い方の確認が良いかも。
|
18
|
-
|
19
|
-
⇒n個配列を用意して、配列には1以上の重ならない値をいれる。(連番でも可)
|
20
|
-
|
21
|
-
2.1.で用意した数の場所を、乱数で引く、引き当て済みの値は、引き当て済みとする。
|
22
|
-
|
23
|
-
|
1
|
+
質問を取り違えた様子ですので、削除
|
24
|
-
|
25
|
-
3.引き当て済みの場所であれば、再度、試行する。
|
26
|
-
|
27
|
-
または、前後を該当として、引当済みとする。
|
28
|
-
|
29
|
-
この場合に、前後が引当済みであれば、再試行します。
|
30
|
-
|
31
|
-
4.引き当て済みの場所1回毎に、行ってもよいが、数値の量が多いと、遅くなるので、
|
32
|
-
|
33
|
-
3.での再試行が連続で、数回になったら、ガーベージをして
|
34
|
-
|
35
|
-
(引き当て済み以外を前詰めするなど)、
|
36
|
-
|
37
|
-
ガーベージ後は、当然、引き当て済みでない部分を対象として、引き当てを行います。
|
38
|
-
|
39
|
-
5.全ての割り当てが終了するまで、試行します。
|
2
誤字訂正
test
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
乱数であれば、同じ数が来るのも、確率としては、ありです。
|
6
6
|
|
7
|
-
ですので、一意の重ならない数を得る場合は、直接は
|
7
|
+
ですので、一意の重ならない数を得る場合は、直接は乱数を使いません。
|
8
8
|
|
9
9
|
簡単な、くじ引き程度:1~1000個の場合は、トランプのシャッフルの考えを応用します。
|
10
10
|
|
1
誤字訂正
test
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
乱数であれば、同じ数が来るのも、確率としては、ありです。
|
6
6
|
|
7
|
-
ですので、一意の重ならない数を得る場合は、直接
|
7
|
+
ですので、一意の重ならない数を得る場合は、直接は、乱数は使いません。
|
8
8
|
|
9
9
|
簡単な、くじ引き程度:1~1000個の場合は、トランプのシャッフルの考えを応用します。
|
10
10
|
|