素数大富豪が8121013倍強くなりたい

素数大富豪の攻略・布教活動をしていきます

使いやすい合成数をたくさん覚えたい

こんにちはOTTYです。
第17回はち杯合成数大富豪で優勝しました🏆🏆🏆



しかもかなりの大勝ちです。嬉しいです。合成数上りが9回もできました!!
634Q8J=7^8*J*1や688Q7=J^4*47、9TKQ=2^K*J*TAなど秘密の合成数がいくつも出せて大満足です。

開催してくださったはちさん、本当にありがとうございます!
対戦相手の皆さん対戦ありがとうございました!次も負けません!

今回は、せっかく勝ったので合成数の探索方法について大きく2つの観点で語りたいと思います。(これで次回以降合成数大富豪でも勝てなくなりそう😭😭)
実践できていることもあればまだまだ発展途上のアイデアにとどまるものもありますが、この記事によって合成数大富豪が更に盛り上がったら良いなと思います。

主に、実戦で使いやすい合成数のレパートリーを増やすにはどうしたら良いのか書いていこうと思います。書きたいことを思うままに書いていたら収拾が付かなくなったので特に2つ目のトピックについてはざっくり削りました。またそのうち気が向いたときに書こうと思います。とりあえず記事を上げることを優先しました。

僕はその場で検算や合成数の成り立ちが解釈できるタイプの合成数が好きです。なのでそのような合成数を増やそうとしました。記憶がすぐ曖昧になるのでその場で確認できるのはありがたいですね。そのために成り立ちを解釈できる幅を増やすようにしました。例えば、17*89=15Kを覚えおいて66K=5100+15K=17*300+17*89=A7*389のように再現でき、そのストーリーをまるまる覚えるような感じです。

末尾がJ,Kの合成数をたくさん覚えたい

昨年のアドベントカレンダーにて、4K=7*59を派生させて88K=7*Q59のような合成数を覚えたという話を書きました。
(末尾Kの合成数)=7*(末尾59の素数)のようにK,7,5,9を固定して考えられ効率が良いと思いました。J*83、47*Kも同様に使いやすいです。

7*59やJ*83、47*Kの派生系を探すのはとても楽しいです。87QK=7*Q4459やQ8KK=J*J6483、T536J=8T47*Kなどの面白い合成数と戯れることが出来ます。

別に末尾がJかKなら素因数が7,J,Kに限ったことでもないよなぁと思い、A4J=A7*83について同じことをしてみると

48J=A7*283
65J=A7*383
J6J=A7*683
5QJ=6A7*83
TTJ=QA7*83

使いやすそうな合成数が続々と出てきました。

便利そうなのでこのようなパターンを増やすために、末尾J,Kの合成数について因数の末尾で分類して覚えようとしました。

そこで、まずはこのような問題を考えました。

 M,N 100以下の 100と互いに素*2自然数とする。
 MN\equiv 11\bmod 100
となる (M,N)を全て求めよ。

これの解は

 
\begin{equation}
\begin{split}
(M,N)\equiv &(1,11),(3,37),(7,73),(9,79),(11,1),(13,47),(17,83),(19,69),(21,91),(23,57),\\
&(27,93),(29,59),(31,81),(33,67),(37,3),(39,49),(41,71),(43,77),(47,13),(49,39),\\
&(51,61),(53,87),(57,23),(59,29),(61,51),(63,97),(67,33),(69,19),(71,41),(73,7),\\
&(77,43),(79,9),(81,31),(83,17),(87,53),(89,99),(91,21),(93,27),(97,63),(99,89)\bmod 100
\end{split}
\end{equation}
となります。


末尾Kについては

 M,N 100以下の 100と互いに素な自然数とする。
 MN\equiv 13\bmod 100
となる (M,N)を全て求めよ。

こちらの解は

 
\begin{equation}
\begin{split}
(M,N)\equiv &(1,13),(3,71),(7,59),(9,57),(11,83),(13,1),(17,89),(19,27),(21,53),(23,31),\\
&(27,19),(29,97),(31,23),(33,61),(37,49),(39,67),(41,93),(43,91),(47,79),(49,37),\\
&(51,63),(53,21),(57,9),(59,7),(61,33),(63,51),(67,39),(69,77),(71,3),(73,81),\\
&(77,69),(79,47),(81,73),(83,11),(87,99),(89,17),(91,43),(93,41),(97,29),(99,87)\bmod 100
\end{split}
\end{equation}

となります。

walframに計算式を入れれば自動で組 (M,N)を出してくれます。便利ですね。

これら解を全部覚えたいです。
直接覚えられれば良いのですが覚えるのはちょっと大変そうでした。 (M,N)の組は各々40通り*3ずつあるのです。順序を無視しても20通りあるのでちょっと覚えづらいです。(最終的には覚えたいですが)

 Mを固定したときに末尾JやKになる Nを即席で求められるとド忘れしたときに役立ちそうだと思いました。

そこでまずは

 MN'\equiv 1 \bmod 100

となる (M,N')を求めましょう。

解は
 
\begin{equation}
\begin{split}
(M,N')\equiv &(1,1),(3,67),(7,43),(9,89),(11,91),(13,77),(17,53),(19,79),(21,81),(23,87),\\
&(27,63),(29,69),(31,71),(33,97),(37,73),(39,59),(41,61),(43,7),(47,83),(49,49),\\
&(51,51),(53,17),(57,93),(59,39),(61,41),(63,27),(67,3),(69,29),(71,31),(73,37),\\
&(77,13),(79,19),(81,21),(83,47),(87,23),(89,9),(91,11),(93,57),(97,33),(99,99) \bmod 100
\end{split}
\end{equation}

となります。

これは割と規則的な形をしていて、 M 10の位を m N' 10位を n'とすると、

 (M,N') 1の位が (1,1)のときは
 m+n'\equiv 0 \bmod 10

 (M,N') 1の位が (9,9)のときは
 m+n'\equiv 8 \bmod 10

 (M,N') 1の位が (3,7)のときは
 m-n'\equiv 4 \bmod 10

 (M,N') 1の位が (7,3)のときは
 m-n'\equiv 6  \bmod 10

となります。わかりやすいですね。暗算で即求めることができます。

ここで N' 11を掛けて Nとおけば、

 
\begin{equation}
\begin{split}
N\equiv& 11N' &\bmod 100\\
MN\equiv& 11 &\bmod 100
\end{split}
\end{equation}


もしくは N' 13を掛けて Nとおけば、

 
\begin{equation}
\begin{split}
N\equiv& 13N' &\bmod 100\\
MN\equiv& 13 &\bmod 100
\end{split}
\end{equation}

となります。

このように逆元をパッと出せれば掛け算で末尾J,Kになる数をすぐに求めることができます。(×11はともかく×13はそんなに計算しやすくないんですよね😭、まぁ素数×13なら結構覚えていることも多いですが)

ここで M,N 100と互いに素であればとりあえずは素数でなくても良いのです。

例えば使いやすそうなところで M=81として末尾Jの合成数を見てみましょう。このとき m+n\equiv10 \bmod 10より n\equiv2\bmod 10より N'\equiv21なので、 N 21*11の末尾2桁なので N=31となります。

81*3A=25J←これを基本形とする。こいつ覚えておくと検算しやすい。

3Aの頭に何かつけると、

81*KA=8100+2511=T6J
81*63A=48600+2511=5JJ
81*T3A=81000+2511=835J
81*Q3A=97200+2511=997J

81の方を派生させると、

A8A*3A=3100+2511=56J
28A*3A=6200+2511=87J
K8A*3A=40300+2511=428J

KKTJ=3A*42358Aもこの系譜ですね。

両方を81,31の両方の頭になにか付けたものだとQJJ=28A*43Aなんかは有名ですね。


個人的には19*Q7=24Kを派生させるのがアツいです。19*3^3もいいのですが、*4
Qを使いたかったので19*Q7=24Kの派生を覚えました。

24K=Q7*19
786K=Q7*619
784K=4Q7*19
532K=Q7*419
9KK=Q7*719
Q94K=Q7*T19
K54K=7Q7*19

特に786K=Q7*6A9、784K=4Q7*A9はセットで覚えたいですね。

とりあえずは気に入った組み合わせだけ覚えても損はないはずです。
これを何パターンか使いこなせるようになりたいです。おすすめなのは、末尾Jなら(13,47),(17,83),(27,93),(31,81),(19,69)*5末尾Kなら(7,59),(11,83),(17,89),(19,27),(73,81)あたりでしょうか。まだまだ自分でも使いこなせていないですが、頭の中にこれらをセットにする思考回路を持っておきたいものですね。

逆元の活用法

せっかく簡単に逆元を導出できるのだから、末尾01の合成数についての使い道無いのかなぁと考えています。

J7K=901*K=17*53*K
429J=3901*J=47*83*J
325K=2501*K=K*4A*6A

など出来るには出来るけど無理のない範囲での実用化はもう少し先かもしれませんね。


7^4=49^2=2401みたいに使いやすければいいんですけどねぇ。(49の逆元は当然49)
因みに7^4については*Jや*K以外にも7^4*89=2K689とか9844A=7^4*4Aなど微妙に使えそうなのがあったりします。
あと、99^2=9801なので、9801*J=T78J,9801*K=Q74Kなんかがあったりします。特にT78J=3^4*J^3は使いやすそうですね。逆元を活用している感は薄いですが。


合成数の拡張性・換装性を意識する

8T=2*5*3^4に9,Jを加えて89T=2*5*3^4*Jにしたり、KQ=2^5*4Aに9,Qを追加して4KQ=2^5*Q9Aにしたり、何かを加えることのできる合成数というのは「札が余ってるから加える」「こっちで必要な札だから抜く」などでき柔軟性があり使いやすそうですね。
今回の大会ではQKQ5=3*5^4*647というKQ5=3*5^4*7に4,6,Qを加えた合成数を使ったりしました。KQ5=3*5^4*7を見つけてから4,6,Qを加えられて使い勝手が良かったです。このような合成数の拡張について興味があります。
また、786K=Q7*6A9と784K=4Q7*A9など、ちょっとだけ組を変えて合成数ができるというのは便利そうです。

ここではざっくりと、合成数が出せる組に何かを加えてまた合成数を作ることを拡張、合成数の骨子の部分は変えずに1部だけ変えるのを換装と呼ぶことにします。何が骨子なのか1部とはどこまでなのかは今回は主観によるものとさせて下さい。
ある程度は日常的にさりげなくやっていることと思います。
例えば
6T=6A*2*5に4,4を加えて64T=641*2*5にするのは拡張です。
86=2*43に5を追加した486=2*3^5みたいな原型がないものも拡張とします。
27=3^2*3を27=3*3*3とするのは換装です。
3QK=7^4*KとK3Q=2^T*Kも換装としましょうか。

まぁ、とりあえずこれを見てください。


K343=J*QK(通称:キングさしみ)という非常に使いやすい合成数があるのですが、こいつは拡張性能・換装性能が非常に高いです。

K3243=J*QAK
K6543=J*Q4K
K8743=J*Q6K
K9843=J*Q7K
K3J43=J*QTK
K34443=J*QKK

割と似た形をしているし、札の組み合わせもそんなに大きく変化していないですよね。こういう合成数は組み切りパズルを手早くやる上で強そうじゃないですか?


88K=7*Q59
886K=7*Q659
8488K=7*QQ59

こんなのとか、

JQ=2^3*K9
8JQ=2^3*TK9
QJQ=2^3*A5K9
8QJQ=2^3*TA5K9

こういうの好き。



86=2*43に5を追加した486=2*3^5みたいな1枚の追加による拡張は小回りが効いて強そうですが、元の合成数と似た形にはなりづらいのが困ったものですね。行き着くところまで行き着いたのがカステラさんが以前挙げていた「A~Tにあと1枚加えてできる合成数出し」なのかもしれません。

graws188390.hatenablog.com

覚えづらいけどこういうの覚える時代が来るんでしょうか。

まぁ、当面は合成数を1つ覚えたら、それらをちょっとだけ変えてみてどうなるのかを考えて合成数をまとめて覚えておくのは肝心なのかなぁと思います。

今後の課題としてはここら辺の探索ですかね。換装についてどのくらい似てるかの定量*6なんてものもしてみたいですね。

まとめ

大切そうなエッセンスを大きく2点書きました。そのうち合成数大富豪において一般的な概念になることは間違いないです。インフレは嫌じゃ😫😫

今回書いたアイデアに基づいて合成数を探索しようと思います、次回参加する際は更に成長したOTTYが見せられたらいいなと思います。

*1:7^4=2401より7^8の末尾2桁は当然01になります。それにJをかけたものです。使いやすいですね。なお7^8*Kは使いづらいです。

*2:ここが一番肝心。例えばM=2なとどとするとNは存在しない。

*3: \phi(100)通りですね

*4:AKK=10800+513=3^3*4A9とか良い合成数があります

*5:主に169=K^2。T46J=K^2*6A9など

*6:編集距離とか?