公開
初動率の考え方と厳密計算・モンテカルロ法の違い
遊戯王における初動率の考え方と、Opener Rate が採用する組合せ列挙による厳密計算・モンテカルロ法それぞれの仕組み、精度、使い分けを解説します。
遊戯王のデッキ構築では「初動率」という言葉がよく使われます。初動率とは、初手の中に、そのターンの展開を始められるカードが含まれている確率のことです。Opener Rate はこの初動率を計算するためのツールで、組合せ列挙による厳密計算と、試行回数を指定したモンテカルロ・シミュレーションの2つの方式に対応しています。この記事では、なぜこの2つの方式が必要なのか、それぞれどのような仕組みで初動率を求めているのかを、具体的な数字を交えながら解説します。
初動率とは何か
遊戯王は40枚前後のデッキから5枚(先攻)または6枚(後攻)を初手として引き、そこから1ターン目の展開を組み立てるゲームです。デッキ全体の枚数に対して初手で見られる枚数はごく一部にすぎないため、「そもそも展開に必要なカードを引けているか」はデッキの安定性を左右する重要な要素になります。初動率は、この「必要なカードを引けている確率」を数値化したもので、デッキ内の初動札の採用枚数や、それらをどう組み合わせて使うかを検討するときの指標として使われます。感覚的に「3枚採用なら十分引けそう」と考えるのではなく、実際に何パーセントの試合で展開できるのかを数値で把握できる点が、初動率を計算する意味です。

超幾何分布で単純な条件の初動率を手計算する
「初動になるカードを1種類、3枚採用していて、そのうち1枚以上を初手5枚に引きたい」という単純な条件であれば、実は手計算でも初動率を求められます。これは高校数学で習う超幾何分布の考え方そのものです。40枚のデッキから5枚を引く組合せの総数はC(40,5)通りあります。C(40,5)は「40枚の中から5枚を選ぶ組み合わせが何通りあるか」を表す記号で、そのうち初動を1枚も引かない組合せは、初動でない37枚から5枚を選ぶC(37,5)通りです。ここでは、初動を1枚も引かない確率を先に求め、1から引くことで「少なくとも1枚引く確率」を計算するという考え方を使っています。したがって初動を1枚以上引く確率は「1 − C(37,5) / C(40,5)」で求められ、実際に計算すると 1 − 435,897 / 658,008 ≈ 33.76% となります。パターン設定の実践例の記事で使うデッキ(40枚中3枚採用、初手5枚)も、条件を「対象カードを1枚以上引く」だけにすると、まさにこの計算式と同じ値になります。
複合条件になると手計算は急速に難しくなる
問題は、初動条件が単純な「1種類を1枚以上」で済まないケースです。たとえば「AとBを同時に引く」「Cというカードを引いてしまうと成立しない」「複数の初動ルートのどれか一つが成立すればよい」といった条件が絡んでくると、超幾何分布の式をそのまま当てはめることができなくなります。条件同士の重なりを一つずつ数え上げる必要があり、手計算では現実的な時間で終わらなくなっていきます。デッキ構築では、初動が1種類だけということはむしろ稀で、複数枚のカードを絡めた初動ルートを複数持つのが普通です。こうした複合的な条件を正確に評価するために、Opener Rate は計算をアルゴリズムに任せる設計になっています。
厳密計算(組合せ列挙)の仕組み
Opener Rate の「厳密計算」(exact モード)は、初手としてあり得る手札の組合せをすべて列挙し、そのうち条件を満たす組合せの数を数え上げることで初動率を求めます。カード1枚ずつを個別に並べるのではなく、同じカードをまとめて「何種類のカードから何枚を選ぶか」という単位で組合せ数を計算し、それを条件ごとに掛け合わせていく方式です。この方式は試行回数によるブレが一切なく、常に正確な値を返せるのが最大の利点です。一方で、デッキに含まれるカードの種類や条件が増えるほど、列挙すべき組合せの数は指数的に増えていきます。Opener Rate では計算処理に既定でタイムアウトが設定されており、極端に複雑な条件を厳密計算しようとすると、途中で「計算がタイムアウトしました」という表示になることがあります。
モンテカルロ法(シミュレーション)の仕組み
もう一つの計算方式が「シミュレーション」(simulation モード)です。こちらは、デッキの中身をシャッフルして初手を引く、という試行をコンピュータ上で何度も繰り返し、そのうち条件を満たした回数の割合から初動率を近似的に求めるモンテカルロ法です。Opener Rate では試行回数を100回から200万回までの範囲で指定でき、試行回数を増やすほど結果は真の値に近づいていきます。裏を返せば、試行回数が少ないと結果に多少のブレが生じます。厳密計算のように組合せを網羅する必要がないため、条件が複雑で厳密計算では時間がかかりすぎる場合でも、現実的な時間で近似値を得られるのがシミュレーションの強みです。
Opener Rate での使い分け
Opener Rate では、デッキ設定の「計算モード」から厳密計算とシミュレーションを切り替えられます。基本的には、条件がシンプルでデッキ規模も大きくない場合は誤差のない厳密計算を選び、条件が複雑になって計算に時間がかかるようになってきたらシミュレーションに切り替える、という使い方になります。なお、金満で謙虚な壺を使う設定にしている場合は、公開されたカードの中から最も都合の良い1枚を選ぶという壺の効果を正確に扱うため、厳密計算を選んでいても内部的にはシミュレーション計算に切り替わるようになっています。どちらのモードで計算しても、結果は全体の成功率に加えて、パターンに付けたラベルごとの成立率としても表示されます。
