ペアが重要!素数大富豪の新戦略「魔神出し」
目次
ペアが重要!素数大富豪の新戦略「魔神出し」
この記事は素数大富豪 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 さんの *合成数出しにおけるルール変更案_ の記事です。素数大富豪研究会でもホットな話題でしたね!