初代素数王の備忘録

KA4T6X|X=9(カステラくん)は素数。

続・4336素数とその周辺

この記事は素数大富豪Advent Calendar 2019の24日目の記事です。
adventar.org

前回4336素数について書きすぎたために書けなかった「その周辺」について書きます。
graws188390.hatenablog.com

素数大富豪研究会でも発表いたしましたが、多枚出しに関して81210、8855、4410、4336、593のような*1特定の数字列が入った素数(発表では「パターン型」と呼びました)を集中的に覚えて素数の個数を稼ぐ方法があります。パターン型はプレーヤーのオリジナリティを出すことができるので、「My素数」を持ちたい人、多枚出しで派手なプレイングをしたい人などにとくにオススメです。本記事ではこうしたパターン型の素数を探す方法について紹介いたします。

パターンを選ぶ

まずは、これから多枚出しを探すにあたってあらかじめ固定しておく「パターン」を決めます。先に挙げた例だと8855、593のような数字列を決めようということです。後に得られる素数の個性に関わる重要なステップですが、臆することなく自由に選んでよいと思います。使いやすさを重視して偶数を固めたり(例: 81210)、語呂の面白さから決めても(例: 8855(ババアGOGO))よいです。自分の名前や推しの名前からとってももちろんOKです。ただしラッキーセブンが好きだからって7777とか同じ数字ばかりにすると素数大富豪で出す際の難易度が高くなりすぎるので気を付けましょう。
以下、5T5Aをパターンに選んだとして素数探しの例とすることにします。ちなみに5T5Aというのは510510が17以下のすべての素数の積になっていることに由来します。これは岩淵夕希(物智)さんの「魔神出し」「魔神ブースター」にインスパイアされたものです。510510にすでに知っている素数を使ってアレンジすれば素数である可能性の高い数(少なくとも17以下の素数では割れない)が生成できます*2
blog.yu.butchi.jp

パターン型素数を探す

パターンを決めたら、いよいよ素数探索です。探し方に決まりはとくにありません。自由に探して全然問題ありません。ただ、何かしらの指針はあったほうがよいと思うのでそれを紹介します。

人力で調べる*3

覚えたい素数の形をある程度決めてしまって、該当する数が素数であるかを素数判定アプリなどに入力して虱潰しに調べる方法です。たとえば、5T5AとQ24(今日の日付)を合わせて素数をつくろうとすれば、5T5AQ24に近い形の素数を探すことになります。これは素数ではありませんから1枚換えるなり1枚追加するなりして調べれば5T5AQ23(昨日なら素数だった)、5T5AQ24J(Jをつければ素数)などが手に入ります。
この方法はあらかじめ形を決めてしまっているので得られた素数を覚えるのがスムーズにいくメリットがありますが、素数が得られないことがある、時間がかかるなどのデメリットがあります。

素数探索ツールを使う

もっと効率よく素数を探したい人は、素数探索ツールを使いましょう。自分でプログラムを書いてしまうのがベストですが、お手軽にできる方法としてnishimuraさんが公開している素数大富豪 手札探索を使う方法があります。

[設定]欄に必要な情報を入力して「探索」をクリックすると探索が始まります。

  • 素数探索枚数上限 最大何枚出しまで調べるかを入力。
  • 合成数探索枚数上限 合成数出しを最大何枚出しまで調べるかを入力。合成数出し探索が不要なら「0」を入力。
  • 優先探索 正の整数を入力するとその枚数の素数を優先的に探索する。不要なら「0」を入力。その場合1枚出しから順次探索される。
  • 評価値を表示 チェックを入れると評価値が表示される。評価値が高いほど、cpu対戦でcpuが出す可能性が高い。
  • 枚数を表示 チェックを入れると出力された各素数に対しそれが何枚出しであるかが表示される。
  • 枚数順に表示 チェックを入れると出力結果が自動的に枚数順にソートされて表示される。
  • 制限時間 素数を探索する時間をミリ秒単位で入力。探索中に制限時間になった場合、探索を中止しそれまでに発見した素数が出力される。
  • 手札 カードの内訳を入力。数字のほか、アルファベット(ATJQK)や語呂合わせのひらがな・カタカナも対応。14以上の整数も入力できる(ただし値がどれだけ大きくても1枚としてカウントされる)。ジョーカーは「0」または「-1」を入力*4

入力できる文字の一覧
0: 00おぬねのまられわオヌネノマラレワ
1: 11AaAaあぃいぇえひびぴアィイェエヒビピ
2: 22つづにふぶぷツヅニフブプ
3: 33さざみサザミ
4: 44しすずほぼぽゆょよシスズホボポユョヨ
5: 55うこごウコゴ
6: 66むもりるろムモリルロ
7: 77せぜちぢなへべぺセゼチヂナヘベペ
8: 88はばぱゃやハバパャヤ
9: 99きぎくぐキギクグ
10: TtTtそぞただてでとどめソゾタダテデトドメ
11: JjJjじジ
12: QqQq
13: KkKkかがけげカガケゲ

手札欄に先ほど決めたパターンと、他の手札を適当に入れて探索しましょう。探索は前の方にある数から順に組み合わせて行われるので、パターンを先頭に入力すると優先的に探索してくれます。結果を見てビビッときたものをピックアップして覚えていきましょう。

もう少しハイレベルな探索

素数は並べ替え最大のものが出力されるので、パターンが途中にあったりすると覚えにくい場合があります。パターンが先頭にくるものを探索したい場合は次のようにします。
手札欄に「x」と他の手札を入力し、その下に
X=[パターン]のうち[1]種以上素数、xの位置[1]桁目
と入力します。するとパターンが先頭にくる素数が出力されます。
f:id:graws188390:20191224000219p:plain
f:id:graws188390:20191224000229p:plain

四つ子素数探索

手札欄にパターンと「x」、他の手札を入力し、その下に
X=[1,3,7,9]のうち[4]種以上素数、xの位置[-1]桁目
と入力します。JK四つ子素数なら
X=[1,7,11,13]のうち[4]種以上素数、xの位置[-1]桁目
と入力すれば探索できます。
f:id:graws188390:20191223234958p:plain
手札に51051と一通りのカードを入力し、制限時間を21600000ミリ秒(=6時間)*5に設定して四つ子素数を探索すると、51051を含む四つ子素数(ただし幹で同じランクのカードを4枚以上使うものを除く)を10枚出し*6まではすべて、11枚出しは1,1もしくは1,2を含むものを100個ほど発見できました。
f:id:graws188390:20191223235156p:plain

パターン型素数を覚える

覚えるべき素数をリストにしたら、覚えていきます。偶数消費型のもの、語呂合わせがつけられるもの*7、とりあえず目についたもの、基準は何でもよいのでどんどん覚えましょう。そして実戦で出してみましょう。実戦の中で「こういう形の素数を知っていればよかった」と思ったらまた探索して覚えます。
せっかく5T5Aのつく四つ子を探索したので覚えやすそうなもの、使えそうなものをいくつか挙げてみます。

  • 510511237X, 510514441X, 510518431X, 51051966913X

51051+素数+Xという形の四つ子素数。510514441XはX=13でも素数、510518431は単独でも素数

  • 825510514X, 2866651051X, 8105105146X, 12245510518X, 44510511088X, 6551051101012X

偶数消費型。

  • 2635105147X

「プラザ今度来いよな(2635T5147)」X=13でも素数

  • 7111041151051X

セブンイレブンで四時、今度来い(711T4J5T51)」

  • 11131031251051X

「JKと三重に今度来い(JKT3A25T51)」

あとは探索→覚える→出すという一連の流れを繰り返すのみ。2ヶ月間*8こつこつやっていけば何か得られるはずです。一昨日告知された素数大富豪大会・札幌杯(2020年2月29日開催予定)まで約2ヶ月ありますので、今から始めても十分間に合います。
prm9973.hatenablog.com

まとめ

素数大富豪の戦略についてOTTYさんは次のように述べています。

現在一部プレイヤーのみで切磋琢磨している現状はもったいないと思います。もっともっと多様な戦略・素数があって個性的なプレイングがあっていいと思います。みんなが必殺技の素数を持っている時代が来て欲しいです。

戦略ゲームとしての素数大富豪 - 素数大富豪が8121013倍強くなりたい

覚える素数についてはnishimuraさんが次のように言及しています。

うまく説明できないですが、素数大富豪プレイヤーの誰もが覚えることになる素数と、そうでない素数があると思います。
それで、枚数が増えると、そうでない素数の割合が増えると思います。
そうすると、そこに「誰誰発祥の素数」と感じることができるようになります。
9494256素数*9なんかは、私発祥の素数と言って良いんじゃないでしょうか。
そういうのは早いもの勝ちなので、皆さんもぜひ自分発祥の素数を探索しましょう。
他の人発祥の素数を使うことは、おそらくどちらかというと歓迎されるのではないかと思います。
でも、自分で探索した方が覚えるモチベーションが高くて忘れにくいと思います。

絵札2枚可変型、特に9枚11桁

両者ともそうですが、私もプレーヤーごとにオリジナルの素数があって全然問題ないですし、むしろそのほうがより多くの素数に出会えることができるのでよいと思います。パターン型の素数をきちんと運用して勝とうと思うと、残り手札の処理のために3~4枚の素数をある程度覚えておく必要がありますが、My素数を出して上がるのってちょっとかっこよくないですか?

明日は素数大富豪Advent Calendar 2019の最終日です。二世さんが2019年を振り返るようです。

*1:一見並びが不自然に見えますが81210885544104336593は素数です。

*2:たとえば10Xというよく知られた四つ子素数がありますが、これを510510に加えた51061Xはまた四つ子素数です。

*3:しかし結局素数かどうかを判定するのはシステムのほうなので言い方には語弊がありますが、後述の方法との区別のためにこう呼ぶことにします。

*4:「-2」や入力できる文字の一覧にない文字などでもジョーカー扱いになるようですがきちんと入力しておくのが無難。

*5:就寝前に設定して起床時に結果を確認できるようにするため。

*6:前述のように51051は1枚でカウントされているので、実際の10枚出しは7枚出しとして扱われています。

*7:語呂合わせについては別の機会で記事にしたいなーと思ったり思わなかったり。

*8:この2ヶ月というのは私が4336素数を考案(2019年4月30日)してから、4336素数の存在に気づかれる(2019年6月下旬)までに相当します。

*9:筆者注: 9494256の後ろにTK, JJ, QJ, QK, KK(絵札2枚からなる奇数で3の倍数でないもの)のどれをつけても素数