2017 04123456789101112131415161718192021222324252627282930312017 06
このブログの更新は終了しました。
新しいブログはこちらになります。
  スポンサーサイト    --.--.-- (--) --:--:--
カテゴリー:スポンサー広告
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  カスタム画面で最初に選ばれる確率(エグゼ3)    2010.01.11 (Mon) 16:02:02
カテゴリー:ロックマン
昨日、紹介した動画の中で、エグゼ3の戦闘時、カスタム画面に出てくるバトルチップの並び順を決める方法について説明されています。殆ど引用になりますが、まずはそれを説明します。

 1.まず、0~29まで数字を順に並べる
 2.0~29の範囲で乱数を2つ生成し、その場所を入れ替える
 3.上を30回繰り返す

2.についてですが、例えば、2つの乱数が12と25だったとします。この時、1回目のループであれば、12番目のデータは12、25番目のデータは25です(但し、0番目から数えてます)。これを入れ替え、12番目のデータは25、25番目のデータは12になります。こんな感じの数字の入れ替えを繰り返すわけです。
乱数が衝突(同じ値を取る)した時は交換しないのと同値になりますね。

0~29の数字はフォルダの上から何番目にあるかに対応します。よって、チップの並びは「チップフォルダの上から何番目にあるか」に依存しています。まあ、当たり前だけど。

そして、この数字の割り振り方が単純すぎるために「非対称」となり、「同様に確からしい」と言えなくなります。早い話、「チップフォルダの上にあるチップの方が早くカスタム画面に現れやすい」ということです。彼はエグゼのゲーム性から言ってこれを「致命的な欠陥」と言っています。


で、


具体的にどれぐらい致命的なの?っていうのが今回の話です。

確率計算はめんどくさすぎるのでしません(そもそも、乱数生成アルゴリズムの問題で、0~29の乱数が同様に確からしいとも言えないから計算できない)。まあ、普通に考えて統計的に調べますよね。楽ですし。

ということで、C/C++言語で簡単にプログラム書いて調べてみました。続きに結果貼ります。
<5枚オープンで1ターン目に引く確率>

 0:  27.50%
1: 27.11%
2: 27.23%
3: 27.33%
4: 27.09%
5: 14.62%
6: 14.58%
7: 14.48%
8: 14.60%
9: 14.76%
10: 14.40%
11: 14.35%
12: 14.39%
13: 14.53%
14: 14.47%
15: 14.33%
16: 14.43%
17: 14.45%
18: 14.54%
19: 14.59%
20: 14.65%
21: 14.72%
22: 14.64%
23: 14.43%
24: 14.57%
25: 14.64%
26: 14.60%
27: 14.68%
28: 14.72%
29: 14.57%


<10枚オープンで1ターン目に引く確率>

 0:  42.23%
1: 41.74%
2: 41.98%
3: 41.99%
4: 41.89%
5: 41.69%
6: 41.57%
7: 41.84%
8: 41.69%
9: 41.69%
10: 28.66%
11: 29.30%
12: 28.92%
13: 29.21%
14: 28.93%
15: 28.85%
16: 28.97%
17: 29.12%
18: 29.05%
19: 29.13%
20: 29.28%
21: 29.13%
22: 29.45%
23: 29.12%
24: 29.11%
25: 29.20%
26: 29.09%
27: 29.07%
28: 29.02%
29: 29.07%


こ い つ ぁ ひ で ぇ。

TASとか関係なく普通に対戦に影響しますよ、これは。エグゼ3の対戦では優先したいチップは上に持ってくるべきですね。他のエグゼや流星はどうなってるんだろう・・・?


ちなみに、乱数生成には標準Cライブラリのrand()関数を使って、それより得られる値を30で割った時の余りを乱数として使用するという多分一番単純な方法を取ってます。rand()関数の精度がクソなのは有名な話なので、あまり細かい部分はアテにしないでください。試行回数は10万回です。

Secret

TrackBackURL
→http://darkmessiah.blog106.fc2.com/tb.php/530-b4102db8
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。