- C#, C♯, C#相談室 Part86 [転載禁止]©2ch.net
167 :デフォルトの名無しさん[sage]:2015/01/06(火) 15:07:35.47 ID:A5fXnf9K - スワップと考えるから間違える。
やってることはスワップなんだが、論理的には袋の中から一つずつランダムに取り出すのと同じになるんだよ、>>158のやり方で。 よく考えれば分かる。 最初のやり方は一様にならない。
|
- C#, C♯, C#相談室 Part86 [転載禁止]©2ch.net
170 :デフォルトの名無しさん[sage]:2015/01/06(火) 15:10:38.19 ID:A5fXnf9K - 違う、>>157のやり方だった。
スワップする事で、袋から選んだボールを並べた上で、選ばなかったボールを袋に返してることになるんだよ。 ちょっとわかりにくいけどよく考えてみれば分かるはず。
|
- C#, C♯, C#相談室 Part86 [転載禁止]©2ch.net
171 :デフォルトの名無しさん[sage]:2015/01/06(火) 15:12:21.30 ID:A5fXnf9K - >>168
スワップじゃなくて、袋から一つずつ取り出してるんだ。 一回取り出した奴を含めて選びなおしてたらおかしくなるだろ?
|
- C#, C♯, C#相談室 Part86 [転載禁止]©2ch.net
176 :デフォルトの名無しさん[sage]:2015/01/06(火) 15:27:31.97 ID:A5fXnf9K - >>136のやり方がなぜだめか。
例えばボール3つの場合、ボールの並び方は 123 132 213 231 312 321 の6パターンになる。 一方、スワップの組み合わせ数は3×3×3で27パターン。 つまり6パターンで割り切れない。 ということは、どういうことになるかというと、パターン数に偏りがあるって事になる。 分かる?
|
- C#, C♯, C#相談室 Part86 [転載禁止]©2ch.net
177 :デフォルトの名無しさん[sage]:2015/01/06(火) 15:30:16.08 ID:A5fXnf9K - >>175
違うよ。 プログラムの動作をメタファーで表現してるのではなくて、元々の袋から一つずつ取り出して並べる操作を、プログラムでシンプルに実装するとこうなるんだ。 論理的に等価なんだよ。
|
- C#, C♯, C#相談室 Part86 [転載禁止]©2ch.net
179 :デフォルトの名無しさん[sage]:2015/01/06(火) 15:34:02.23 ID:A5fXnf9K - >>176
一方で、>>157のやり方だと、スワップの組み合わせ数は 3×2×1で6パターン つまりボールの並び順のパターン数と同じになる。 袋から一つずつ取り出して並べるのと等価になるようにプログラムしてるんだから当然だけど。
|
- C#, C♯, C#相談室 Part86 [転載禁止]©2ch.net
181 :デフォルトの名無しさん[sage]:2015/01/06(火) 15:40:01.80 ID:A5fXnf9K - 最初の配列は全部袋の中のイメージな。
まず一回目のループで3つのうちどれか選ぶよな。 それが一つ目のボールだ。 配列の1つめと、選んだボールをスワップする。 配列の1つは選んだボールになり、2つ目と3つ目は袋に残ったボールになる。 2回目のループで配列の2つ目と3つ目どちらかを選ぶ。 つまり、袋に残った2つのどちらかを選ぶ。 配列の2つ目と入れ替える。 配列の2つめは、袋から2回目に選んだボールとなり、配列の3つ目には選ばれなかったボールが残る。 こういう事だよ。
|
- C#, C♯, C#相談室 Part86 [転載禁止]©2ch.net
182 :デフォルトの名無しさん[sage]:2015/01/06(火) 15:43:07.32 ID:A5fXnf9K - >>180
さすがに 確率を勉強し直せとしか言えん。 スワップのパターン数=出来上がる配列の最終的なパターンの総数だろうが。 その総数が、並び方のパターン数の倍数にならないなら、並び方によって出現するパターン数が替わってしまう=一様になってない。 何で分からん?
|
- C#, C♯, C#相談室 Part86 [転載禁止]©2ch.net
190 :デフォルトの名無しさん[sage]:2015/01/06(火) 16:41:32.07 ID:A5fXnf9K - >>187
合ってる。
|