ペアが重要!素数大富豪の新戦略「魔神出し」

この記事は素数大富豪 Advent Calendar 2019の13日目の記事です。

昨日は3TKさんによる素数大富豪・5枚出しの鍛え方(自己流)の記事でした。5枚出しもできるようになりたいものです。


今日は12月13日ですね(QK)。

素数大富豪研究会2019の開催を知って研究会に入会し、誕生日と同じである会員番号13という有り難い番号をいただけたので、畏れ多くもこの日の担当をいたします。

先日素数大富豪研究会に参加し、今回の記事のトピックを発表しました。私は普段、大会に出場するような素数大富豪プレイヤーとの実戦をあまりできていないので、「現場でなにが起こっているのか」というところの理解が進んでおらず、実践にあまり目を向けられませんでしたが、今回の発表への反応を見て、どのように戦略をブラッシュアップしていくといいかある程度見えてきたので為になりました。

素数大富豪の戦い方、今とこれから

近年の素数大富豪は「素数インフレ」が著しく、全出しなど大きい数で勝負するのが当たり前となっています。しかも大きすぎて1001チェックもしないのが通常となっており、低確率の戦いが繰り広げられているといえます。

ということは、素数の確率を上げれば勝率も上がるということで、「素数を覚える」ことから「高確率で素数を出す」という技術も磨く必要があるのではないかと考えます。

カードの組み合わせから素数を作り出す「素数生成」が簡単にできたら魔法のようですが、それは夢のまた夢ということで、最近の私は高確率で素数な数を作り出す「素数候補生成」を探求することに情熱を注いでいます。

素数大富豪における「ペア」の意味

元来の「大富豪」においては、「ペア」がゲームの根幹となりますが、素数大富豪においては同じカードが複数枚あっても特に有利なことはなかったでしょう。

と言いつつ最近知ったのは、素数の10倍を合成数出しするという技法だったりしますが、カードの並びとしては目を引く「ペア」に「素数候補生成」の観点で光を当てる発見をご紹介します。

1001チェックを逆手に取った素数候補生成

倍数チェックとして有用な方法の1つに「1001チェック」があります。

1001 = 7 × 11 × 13

であることと、数に1001の倍数を加減算しても7, 11, 13の倍数関係が変わらないことを利用して、7, 11, 13の倍数かどうかをチェックできます。

逆に言えば、1001の倍数に7, 11, 13のいずれの倍数でもない数を加減算すれば倍数関係を維持することができ、1001チェックを通過する素数候補を生成することができます。

命名「魔神出し」!

これから紹介する技法は、1001に3桁の数を掛けた数をベースにしています。

ということで、

1001 → 千夜一夜物語 → ランプの魔神

と発想して、「魔神出し」という技名を命名しました。

それでは、これから魔神出しの方法を紹介します。

魔神出しの実践

ステップ1: ベースを決める

ベースの例として583583を使います。
5と8と3をそれぞれ1ペア用意するということです。1桁札ならどの3ペアでも構いません。
また、123123をQ3Q3というように、2ペアで用意することも可能です。
なお、最初に用意する3ペアというのは仮想的なもので、組み換えなどにより実際必要なペアは少なくなります。

ステップ2: アレンジする

組み替える(1桁の加減算)

583581

1桁の数を加減算することによって1枚のカードを組み替える操作になります。
ただし、組み替える桁の差が7にならないように気をつけます(例えば513583はNG)。

末尾を削る

58358

1桁削るときは削る数が7だとNG、2桁以上削るときは7, 11, 13いずれの倍数にもならない数を削るようにしましょう。

なお、この例だと偶数になってしまうのでそこも注意しましょう。

先頭を削る

83583

末尾を削るとき同様、7, 11, 13の倍数を削らないように注意しましょう。

ただし、ベースが5の倍数の場合はNGです(先頭を削るということは5の倍数を引くということになっているため)。

末尾に付け加える

583583123

3ペアに7, 11, 13いずれの倍数でもない数を付け加えます。

583583000が1001の倍数であることから、それに7, 11, 13のいずれの倍数でもない3桁を足しても1001チェックをパスします。

先頭に付け加える

422583583

末尾のときと同様に付け加えます。

ただし、ベースが5の倍数の場合はNGです(先頭に付け加えるということは5の倍数を足すということになっているため)。

2枚組み替える(1〜2桁の数を加減算する)

583511

この例では7, 11, 13のいずれの倍数でもない72を減算しています。

2枚組み換えの場合、用意するペアは1ペアだけで済みます。

3枚組み替える(2〜3桁の数を加減算する)

583421

この例では7, 11, 13のいずれの倍数でもない162を減算しています。

3枚組み換えとなれば、1ペアも用意する必要はありません。

上記の方法以外にも、組み替えてさらに付け加えるようなアレンジも可能です。

ステップ3: 3倍チェックをする

ステップ2で生成した素数候補は、1001チェックはパスしますが、3の倍数の可能性があるので、これだけはチェックします。

ステップ4: 出す

素数であることに懸けて出しましょう。

強力な魔神出し「TaTb」

魔神出しのパターンとして、TaTbは強力です。

Tは10を表し、aとbを1桁札とすると、この組み合わせのうち以下は素数となります。

101107, 102101, 102103, 102107, 103109, 104101, 104107, 105101, 105103, 105107, 105109, 106103, 106109, 107101, 108103, 108107, 108109, 109103

2, 3, 5の倍数をチェックしておけば、66.6% の確率で素数となり、6桁1001チェック通過率39%より大幅にアップします。

ちなみに、2019年マスパーティ杯で優勝したもりしーさんは、素数表をつくる際に、このあたりに素数が多いことを発見していたようです。

魔神ブースター

「魔神出し」とともに、「ブースター」という新たな概念も紹介します。

やり方は、

  • 6桁の数に覚えている素数を付け加える

以上。

たとえば、246246の3ペア6桁と131311という素数を組み合わせた246246131311は素数です。(ただしこれも「1001チェックをパスする」という効果で、必ずしも素数とは限りません。)

実践で挙げた「末尾に付け加える」と言っていることは同じですが、「素数を覚える」という基本との組み合わせで素数候補生成が可能となり、元々の素数より桁の多い素数候補を作り出すことができます。

なお、同様の手法でユークリッド数から着想を得た「ユークリッド・ブースター」という技法も発明済みです。

公式ルールにおける初期札全出し(11枚出し)での1ターンキルも、素数大富豪プレイヤーとしてはひとつの夢でしょう。

一昨日のもりしーさんの記事では、「素数を覚える」ことによってこの夢を着実に叶えようとしていますが、この「魔神ブースター」にマッチすれば、闇雲に出すよりは大幅に夢に近づきます。

11枚11桁という特殊な条件下におけるシミュレーションですが、21%という高確率で素数となる結果が得られました。
(3の倍数チェックだけだと15%)

3ペアが必要、残りで覚えている素数を作れる、3の倍数にならない、という条件が揃わないといけないのでなかなか繰り出すチャンスはないかもしれませんが、もっと出しやすいブースターについても研究していきたいと思います。

まとめ

1001チェックを逆手に取った「魔神出し」と、ブースターのひとつである「魔神ブースター」を提案しました。

中には上級テクもありますが、基本は簡単なので初心者が勘出しするときにもかなり有用なのではないかと思います。

今後、岩淵の手法を用いて勝利するプレイヤーが増えることを願っています。


明日はintegers_blogさんの 合成数出しにおけるルール変更案 の記事です。素数大富豪研究会でもホットな話題でしたね!