チラ裏バッファ: 数学

数学

2020-07-26 谷山予想(フェルマーの最終定理を含む)を証明したコンラッド

…というと雲の上の人のようだが、数学の世界に貴賎(きせん)はない。拡張ペル方程式に関連して、Brian Conrad のテキストの主定理の改善に成功した!

まず旧バージョン(2018年)の上界。
PNGファイル

こちらが新バージョン(2020年)の上界。数時間前に思い付いて、速攻メール。教授も同意、たまたま日曜だったせいか、ものすごい勢いでテキストが更新された。
PNGファイル
この強い上界を使うと、検索が有意に高速化するばかりか、冗長な「同値解」が出にくくなる。ブルートフォースから生まれた「野蛮流」も、とうとう世界的数学者のお墨付き?(笑)な~んてネ…単なるワンアイデアだが、うまいショートカットが見つかると普通にうれしい。

http://virtualmath1.stanford.edu/~conrad/154Page/ ここにある Generalized Pell equation のファイル。証明の道筋が非常に面白いけれど、バリバリの代数的整数論の言葉で書かれていて、このファイル自体は一般向けではない。しかし「ごく普通の高校生にも十分理解できる」ような普通の言葉で説明可能なので(数学が好きなら中学生でも分かる)、できれば近々一般向けの記事にしたい。

↓思い付いたときのメモ。使用済みルーズリーフの、字が書いてない隙間に走り書き。
JPGファイル

2020-07-27 コンラッドの不等式について

誰にでも意味が分かるような、シンプルな問題。例えば…
x2 − 79y2 = 5 は整数解を持たないことを証明せよ」
左辺の xy にどんな整数を入れても、右辺は5にならないんだよ~と。ちょっと試せば確かに解は見つからないが、もしかして、この式を満たすような100桁くらいの巨大な解があるかもしれない。「そんなものは絶対存在しない!」と数学的に証明するのは、決して簡単ではない。

必要な予備知識は対数関数の基本だけ。でもこの証明は「普通」の数学の発想とは、あさっての方角に懸け離れている。数論が好きな人でも初めて見ると「不思議な証明だなぁ」と感じるかもしれない。本質的に代数的整数論の世界だが、ちょっと感覚が違う点がある(だって普通、二次体の整数論の入門的部分に、対数関数なんて出てこないでしょう)。

一定の場合には、剰余演算さえ導入すれば、この手の問題は易しい。上記の例は、その手法が使えないケース。平方根の連分数展開を使う方法もあるが、右辺の整数の絶対値が大きい場合、実用上、話がややこしくなる。「解があれば、必ずこの範囲にある」という明示的な範囲指定をして、その範囲を探す…というのが、面白いアプローチ。種を明かせばレギュレーターというか、単数定理の埋め込み写像的な発想なんだろうけど、拡張ペルの解をある方法で平面に配置すると等間隔で並ぶ。その間隔を1とすると、必ず一定の場所からずれが1/2以下になる解を選べる。従って、解が存在する場合、最小解の x が取り得る範囲は有限なのである。

この説明だけでは、何のことやら…? とにかく不等式で x の範囲を指定できる、という方向で…

コンラッドは c2(α) の絶対値が 1/2 以下という状況を作って、
【+】 log | x + yd | = (1/2) log | n | + c2(α) log u ≤ (1/2) log | n | + (1/2) log u
【-】 log | x − yd | = (1/2) log | n | − c2(α) log u ≤ (1/2) log | n | + (1/2) log u
と評価していた。確かに ±c2(α)−1/2 以上 1/2 以下なので、どちらにしても ±c2(α) ≤ 1/2 であり、上記のようになる。どちらの右辺も log (| n |u)1/2 に等しいことに注意しつつ、これらを全部 e の肩に乗せ、辺々足し合わせると
2x ≤ 2(| n |u)1/2
となり、その両辺を2で割ると2018年版のシンプルな上界を得る。

しかしもし c2(α)0 以上だったら(仮定1)どうだろう。そのときは c2(α) log u ≤ 0 なので【-】の式の不等号の右側、一番右端の項 + (1/2) log u を落とす(なくす)ことができる(log u > 0 であることは分かっている)。あるいはもし c2(α)0 未満だったら(仮定2)どうだろう。同様の理由から、今度は【+】の右端から + (1/2) log u を落とすことができる。仮定1と仮定2のどちらか一方は必ず成り立つのだから、いずれにしても、どちらか一方の式から + (1/2) log u を落とすことができる。双子の不等式のうち、一方については確かに log (| n |u)1/2 以下としかいえないが、他方についてはもっと本気を出して Gyu! と押さえると log (| n |)1/2 まで縮む。こうして改善された評価について、最初と同じように、e の肩に乗せ、辺々足し合わせて2で割ると、2020年版の強い上界を得る。どっちの式から + (1/2) log u を落とせるのか確定できないが、どうせ足し合わせて2で割るのだから、どっちがどっちでも構わない。

これで分かるように、「コンラッドの主定理を改善」といっても、その中身は単純で小さなアイデアにすぎない。このアイデアがどこから来たかというと…。まず仮定1を考えた。【-】左辺の c2(α) log u は事実として 0 以下なのに、それをわざわざ + (1/2) log u 以下だと評価するのは「もったいない」と感じた。けれど c2(α) は負かもしれず、仮定1が成り立つ保証はないので、一般論としては、最悪のケースでも大丈夫なように、そう評価するしかないのか…。ん、待てよ。仮定1が偽なら、自動的に仮定2が成り立つんだから…。という流れ。

単に技術的に上界を改善できるだけでなく、多くの場合、これによって検索結果から冗長性を排除できる。この副産物が数学的には一番大きいかもしれない。

2020-07-31 双子の数学者

谷山予想の Brian Conrad と、コネチカットの Keith Conrad は、どちらも数論研究者で、きょうだい。確認はできなかったが、ウィキペディアによると双子らしい。

Keith Conrad のサイトは宝箱のよう。面白いものがいっぱいある。専門的なものも多いが、初心者向け・中級者向けのものも…。
https://kconrad.math.uconn.edu/blurbs/
拡張ペル方程式の話題もあって、こちらは(Brian Conrad版と違い)一般向けとして、お薦めできる。
https://kconrad.math.uconn.edu/blurbs/ugradnumthy/pelleqn1.pdf
https://kconrad.math.uconn.edu/blurbs/ugradnumthy/pelleqn2.pdf

Brian Conrad の不等式を改善してメールを送ったとき、最後に一言「話がうま過ぎるような気もするので、間違っていたらご教示ください」とコメントした。そりゃそうでしょう、常識で考えれば、素人考えでコンラッドの上界を1/2に改善できるわけなく、何かの初歩的な勘違いが疑われる。けれど教授からは「私もそれに同意します」という返事が来て、あれよあれよという間にテキストが更新された…。これまでも、他の数学者・物理学者・シリア語学者などに、ちょくちょくちょっとしたミスを報告してはいたのだが(あら探しというよりお礼の意味で)、こんなふうに、実質的な寄与をできたのは初めてかもしれない。Brian Conrad は、双子の Keith Conrad にもこの結果を連絡したらしく Keith Conrad から「兄(弟?)から聞きました」とメールが来た。そんなわけで、チラ裏お遊びの副産物により、スタンフォードとコネチカットの2カ所でテキストが改訂された。ひょうたんから駒というか…純粋に遊びでやっていたことが、思わぬ展開。

調子に乗ってもうちょっと考えたところ、n が正の場合に限ると、改善された評価をさらにもう少し改善できそうな感じ。Keith Conrad の方にその話をしてみたところ「自分としては、正の場合と負の場合の両方に当てはまる不等式の方がいいと思うので、1回目の改善版のままでいく」とのお返事をいただいた。

きょうだいで数学者といえば、Lenstra もそうで、こちらは確か4人きょうだいくらい。それぞれいろいろ活躍しているようだが、一番有名なのは、何と言っても楕円曲線法の Hendrik Lenstra でしょう。その発想のインパクトは、狭義の数学にとどまらず、インターネットの認証の Ed25519 にも結び付いていて、すなわち目に見えないところで日常的に使われている。そして、この楕円曲線法の初期には、日本のスヤマという人が、小さいけれど重要な貢献をしている(多分アマチュアだと思われる)。だから「アマチュアの遊び」だからといって、侮れないんじゃないかな…。

だけどね…

インドでは子どもでも知ってる有名な言葉(ギーター)…

「カルマンニェーヴァーディカーラス、テー。マー、パレーシュ…」(作業の中にこそ、そなたの権利はあれ。結果の中にではなく…)

すなわち「正しいと思われることをしていい。それがあなたの唯一の権利である。その結果(甘い果実か苦い果実か、名誉か不名誉か、成功か失敗か)については、あなたには何の権利もない」。

カルマンニェーヴァーディカーラス、テー。マー・パレーシュ。カダーチャナ…
マー・カルマパラ・ヘートゥル、ブール。マー、テー・サンゴー、ストヴァカルマニ
 そなたはただわざをなせ。成り行きは天意なり、
 そなたのものにあらざる。それでもなさねばならぬぞ。

「自分は今何をするといいのだろう。それを思い、やってみる。あなたにはその権利がある。けれど、その結果がどうなるかについては、あなたには何の権利もない。神の気まぐれは、あなたの管轄事項ではないのだから。余計なことを考えず、成り行きに任せておけばいい。だが達成しようとすることをやめてはいけない。どうせあなたは明日くらいに死ぬ人間。来年の果実を受け取れるかどうか気にしても仕方ない。心を静め、今日できるちょうどいい分量を今日やっておきなさい」

もちろん物事がうまくいけばうれしいだろう。でも結果がどうなるかは自分の問題ではなく、だから「成功して何かを残したい」といったことを動機にしてはいけない。とはいえ、別次元の問題として、スタンフォードの教科書を書き換えた(?)とか大げさに言えば、権威に弱い日本人はびびるかもしれない。そこに付け込んで「アスペだサバンだと自閉症圏の者をばかにするのは、やめてもらおう」と主張するのは許されるだろう。実際、呼吸するようにコードを書くわたしたちがいて、現代のネット社会が回っているのだから。クヌースだってそうなのだから(笑)。ばかとはさみは使いよう。というより、この種族がいなくなると、自称健常者諸君だけでは、もはや世界は回らない…

2020-04-11 「マイナスかけるマイナスはプラス」にならない例

どちらの例も内容は当たり前だが、「マイナスかけるマイナスはプラスに決まってる」と簡単には言い切れないことが分かる。

「マイナスかけるマイナスはプラスということは、分配法則から言えること」という「知識」を持っている人もいるかもしれない。それも突っ込みどころがあって、例えば、整数において「マイナスかけるマイナスはプラス」「プラスかけるプラスはマイナス」としても分配法則は成り立つ。

「マイナスかけるマイナスはプラス」を少しきちんと言い直すと「任意の2元 a, b の積は、a の加法逆元と b の加法逆元の積に等しい」。この明確化によって、上記の紛れは解消する。とはいえ、明確化された命題が成り立つかどうかは、依然として「考えている代数系の性質」であり、「積という演算そのものの性質」ではない。

「マイナスかけるマイナスはプラス」ということについては、次のような「一見エレガントな証明」が成り立つ。下記二つの主張に基づく。

第一の主張 m というものは、m と足し合わせるとゼロになるような数のことである…と定義しよう。例えば −3 というものは、3 と足し合わせるとゼロになるような数である。これは定義なのでケチのつけようがない。

第二の主張 m(−1) × m に等しい。例えば −3(−1) × 3 に等しい。これも明らかだろう。

ここで m をマイナスの数、例えば −4 だとしよう。第一の主張から、−(−4) は「−4 と足し合わせるとゼロになるような数」なので、+4 に他ならない。すなわち
−(−4) = +4
である。一方、第二の主張から
−(−4) = (−1) × (−4)
であり、これらを組み合わせると
(−1) × (−4) = +4
となる。マイナスかけるマイナスがプラスになることが「証明」された…。

この「証明」の問題点は、第二の主張が成立する根拠が示されていないこと。普通の数(例えば実数の集合)の計算では、事実として、第二の主張は成り立つ。しかし、第二の主張が成り立つ理由は、負数の乗法が「このように」定義されていること。定義の結果である第二の主張を使って定義を正当化するのは、循環論法である。

子どもに説明するような場合には、時間軸のプラス(未来)とマイナス(過去)について、「速度がマイナスの(バックしている)車の位置」をイメージするのが手っ取り早い。位置が速度かける経過時間であること、バックしている車の過去の位置がプラスであることは、直観的に明らかだろう。

2020-06-27 現金でちょうど50円払う方法は37通り

1円、5円、10円、50円という通貨があるとする。ちょうど50円を払う方法は何通りあるか。1円を50個、1円を45個・5円を1個…といった全ての可能性を考える。

50円を1個という単純な方法(1通り)の他に、下記のように
11 + 9 + 7 + 5 + 3 + 1 = (11+1) + (9+3) + (7+5) = 12*3 = 36
通りの方法がある。一見たわいもない算数だが、通貨の種類と支払う額を一般化した場合(例: 63円、84円、94円、100円の切手を組み合わせてちょうど1万円払う方法は何通りあるか)、解けることは解けるものの、計算量的に困難。計算法(アルゴリズムの実装)もいろいろで、興味深い。この問題の有名なバージョンは「1セント、5セント、10セント、25セント、50セント、1ドルを使って1ドル払う方法」。50円バージョンは37通り、1ドルバージョンは293通りと、どちらも答えが素数になるところが、誘惑的。

  1 : [ 10*0 + 5*0 + 50 = 50 ] 10円0枚なら残り50円: 5円は0~10枚=11通り
  2 : [ 10*0 + 5*1 + 45 = 50 ] (不足分は1円で払う。
  3 : [ 10*0 + 5*2 + 40 = 50 ] 1円の枚数は自動的に決まる)
  4 : [ 10*0 + 5*3 + 35 = 50 ]
  5 : [ 10*0 + 5*4 + 30 = 50 ]
  6 : [ 10*0 + 5*5 + 25 = 50 ]
  7 : [ 10*0 + 5*6 + 20 = 50 ]
  8 : [ 10*0 + 5*7 + 15 = 50 ]
  9 : [ 10*0 + 5*8 + 10 = 50 ]
 10 : [ 10*0 + 5*9 + 5 = 50 ]
 11 : [ 10*0 + 5*10 + 0 = 50 ]
 12 : [ 10*1 + 5*0 + 40 = 50 ] 10円1枚なら残り40円: 5円は0~8枚=9通り
 13 : [ 10*1 + 5*1 + 35 = 50 ]
 14 : [ 10*1 + 5*2 + 30 = 50 ]
 15 : [ 10*1 + 5*3 + 25 = 50 ]
 16 : [ 10*1 + 5*4 + 20 = 50 ]
 17 : [ 10*1 + 5*5 + 15 = 50 ]
 18 : [ 10*1 + 5*6 + 10 = 50 ]
 19 : [ 10*1 + 5*7 + 5 = 50 ]
 20 : [ 10*1 + 5*8 + 0 = 50 ]
 21 : [ 10*2 + 5*0 + 30 = 50 ] 10円2枚なら残り30円: 5円は0~6枚=7通り
 22 : [ 10*2 + 5*1 + 25 = 50 ]
 23 : [ 10*2 + 5*2 + 20 = 50 ]
 24 : [ 10*2 + 5*3 + 15 = 50 ]
 25 : [ 10*2 + 5*4 + 10 = 50 ]
 26 : [ 10*2 + 5*5 + 5 = 50 ]
 27 : [ 10*2 + 5*6 + 0 = 50 ]
 28 : [ 10*3 + 5*0 + 20 = 50 ] 10円3枚なら残り20円: 5円は0~4枚=5通り
 29 : [ 10*3 + 5*1 + 15 = 50 ]
 30 : [ 10*3 + 5*2 + 10 = 50 ]
 31 : [ 10*3 + 5*3 + 5 = 50 ]
 32 : [ 10*3 + 5*4 + 0 = 50 ]
 33 : [ 10*4 + 5*0 + 10 = 50 ] 10円4枚なら残り10円: 5円は0~2枚=3通り
 34 : [ 10*4 + 5*1 + 5 = 50 ]
 35 : [ 10*4 + 5*2 + 0 = 50 ]
 36 : [ 10*5 + 5*0 + 0 = 50 ] 10円5枚なら残り0円: 5円は0枚=1通り

このタイプの問題は「危険」。入り口はスイートでエレガントで簡単そうだが、スッキリ解決させようとすると予想外に深く、最初に考えていたことは氷山の一角で、一般の問題が面白くてハマってしまう…
Lectures on Integer Partitions
http://www.math.upenn.edu/%7Ewilf/PIMS/PIMSLectures.pdf

2020-07-15 きれいなパターン

32 + 42 = 52 = 25

102 + 112 + 122 = 132 + 142 = 365

212 + 222 + 232 + 242 = 252 + 262 + 272 = 2030

おいおい、どうなってるんだ、これは???

362 + 372 + 382 + 392 + 402 = 412 + 422 + 432 + 442 = 7230

むむむ…。

552 + 562 + 572 + 592 + 592 + 602 = 612 + 622 + 632 + 642 + 652 = 19855

見えた! 一番左の数、3は1~2の和、10は1~4の和、21は1~6の和、36は1~8の和、55は1~10の和。このパターンで行くと、次は1~12の和、すなわち78がスタートポイントになるはず…

782 + 792 + 802 + 812 + 822 + 832 + 842 = 852 + 862 + 872 + 882 + 892 + 902 = 45955

ごちゃごちゃ計算すれば、三角数がなんちゃら、2乗の和の公式がなんちゃらかんちゃらで、こういう仕組みになるんでしょう。

「5項ピタゴラス」の導出↓

a2 + (a+1)2 + (a+2)2 = b2 + (b+1)2
(2b + 1)2 − 6(a + 1)2 = 3 を含意するので、
題意を満たす x2 − 6y2 = 3 の解を求めればいい。ここで x = 2b + 1, y = a + 1

(3 + 1√6)(5 + 2√6) = 27 + 11√6, b = (27 − 1)/2 = 13, a = 11 − 1 = 10

第2解: (3 + 1√6)(5 + 2√6)2 = 267 + 109√6, b = (267 − 1)/2 = 133, a = 109 − 1 = 108 より
1082 + 1092 + 1102 = 1332 + 1342 = 35645

第3解: (3 + 1√6)(5 + 2√6)3 = 2643 + 1079√6, b = (2643 − 1)/2 = 1321, a = 1079 − 1 = 1078 より
10782 + 10792 + 10802 = 13212 + 13222 = 3492725

「7項ピタゴラス」の導出↓

a2 + (a+1)2 + (a+2)2 + (a+3)2 = b2 + (b+1)2 + (b+2)2
(2a + 3)2 − 3(b + 1)2 = −3 を含意するので、
題意を満たす x2 − 3y2 = −3 の解を求めればいい。ここで x = 2a + 3, y = b + 1

(0 + 1√3)(2 + 1√3)3 = 45 + 26√3, a = (45 − 3)/2 = 21, b = 26 − 1 = 25

第2解: (0 + 1√3)(2 + 1√3)5 = 627 + 362√6, b = (627 − 1)/2 = 313, a = 362 − 1 = 361 より
3122 + 3132 + 3142 + 3152 = 3612 + 3622 + 3632 = 393134


Prime Curios!

2019年7月27日

「キュリオ」(珍品)って何?

「Prime Curios!」のホームページには、最初にこう書かれています。

「Prime Curios!」は、素数に関連する珍しいこと・不思議なこと・トリビアを集めた楽しいコレクションです。立ち止まって、野の花の匂いをかぐこと。珍しいコインを集めること。春の雷雨のとき巻き雲を眺めること…。私はこれまで、そういったことの価値が分からない大勢の人たちに出会いました。昔のことわざで「美は、それを見る人の目の中にある」といいます。私たちの目はどうでしょうか。ぜひ私たちのキュリオを試食してみてください。

コンテンツ・エディター: G. L. Honaker, Jr. / テクニカル・エディター: Chris Caldwell

私たちの目標は、面白い性質や形を持つ一つ一つの素数のコレクション(いわば辞書)を作ることです。あなたは何か、面白い数を知っていますか。他の人が「もっと話を聞きたい」と思うような調子で、あなたのキュリオを一般の人に分かるように説明できますか。もしそうなら、知らせてください。

2019年7月25日

提出したキュリオたち

忘れないうちにメモしておきたい。

最初に提出したキュリオは「フェルマーのクリスマス定理で遊ばせて!」(2018年12月)で書いた「79の不思議」。何となく送ってみた。送信のときメアドを記入するので、採用されたらメールで通知でもくるのかな、と思ってた。実際には何の連絡もないし、ユーザー登録もパスワード認証も何もない。今どきのんきな世界だが、まあ他の素数愛好家になりすます詐欺師もいない(なりすますメリットもない)のだろう。知らないうちに(たぶん提出後、翌日くらいに)採用・掲載されていたらしい。記憶が曖昧だが、2019年1月に送って、2月になってそれに気付いたような。送信した方も、のんきだった。

2番目のキュリオは、4187 についての既存のキュリオと関係がある。後から分かった客観的事実としては「間違いに気付いたから連絡した」という形だが、その時点では「自分の側が何か勘違いしてる?」と疑問に思ってた。「4187は逆数の循環節の長さが素数になるような最小の強擬素数(自明な底を除く)」というネタを送り、コメントとして疑問について尋ねてみたが、反応がなかった。

2019-06-21 擬素数の逆数の循環節の長さ n > 110 と互いに素な整数とする。1/n10 進小数で表し、その循環節の長さを とする。 (I) n が素数であるか、または底 10 のフェルマー擬素数であるときに限って、n ≡ 1 (mod ) が成り立つ。 (II) 底 10 のフェルマー擬素数は、10 以上なら、全てこの合同式を満たす。

【例】 n = 91 とすると、1/n の循環節の長さ = 6n ≡ 1 (mod ) を満たす。ところが n = 91 = 7 × 13 は素数でないから、フェルマー擬素数になるはず。実際、1091 − 1 ≡ 1 (mod 91)。

【証】 10 進小数の場合、n を法として 10 の位数。n が素数なら、小定理により n − 1 の約数だから n − 1 ≡ 0 (mod ) となり (I) の合同式が成立。よく知られているように、逆は不成立。すなわち、フェルマー擬素数も同様の理由から、同じ合同式を満たす。

これだけなら大したことじゃないが、これは話の出発点…

2019-06-24 最小の強擬素数 (正の)合成数 m が与えられたとき、m − 1 = 2sd を満たす整数 s ≥ 0 と奇数 d ≥ 1 が一意的に定まる。次の条件のいずれかを満たす自然数 b を知りたい。

条件 (I)  bd ≡ 1 (mod m)

条件 (II)  e = 2rdbe ≡ −1 (mod m) を満たすような、整数 r ∈ [0, s−1] が存在

もし m が偶数なら、s = 0, d = m − 1 となり、(I) は普通の擬素数(フェルマー擬素数)と全く同じ条件、(II) は意味を持たない。従って m奇数の合成数に限ることにする。このとき、(I) または (II) を満たす数(強擬素数と呼ばれる)は必ず擬素数だが、擬素数は必ずしも強擬素数ではない。普通の擬素数の場合と同様の理由から、b ≡ ±1 (mod m) は「自明な底」。底の検索を [2, m−2] の範囲に限定することができる。

そうすると、b ≥ 2 を固定して「b を底とする最小の強擬素数」を考えることができるのはもちろんだが、底を限定せずに「ある性質を持つ最小の強擬素数」を考えることもできる。例えば、100 以下の自然数のうち、非自明な底に対して強擬素数になり得るものは 25, 49, 65, 85, 91 の5個しかない(容易に全数検索可能)。「底の検索範囲を広げたら、350桁の巨大な(非自明な)底に対して 15 も強擬素数になることが発見された!」といったことは、絶対起きない。従って、例えば「49 は、逆数(の10進展開)が循環小数になる最小の強擬素数である」という命題は(数学的な価値はさておき)論理的に正しい。

「強」ではない普通の擬素数についても同様のことが言えるが、3 のべきを除く全ての奇数の合成数は(非自明な底の)擬素数なので、あまり面白みがない。偶数の擬素数(比較的珍しい)についてなら、何か面白いことが言えるかもしれない。

2019-06-23 どの底の擬素数? (正の)合成数 m が与えられたとき、bm−1 ≡ 1 (mod m) を満たす自然数 b を知りたい。一般性を失うことなく 1 ≤ b ≤ m と仮定できる。実際、任意の整数 x について、整数 k が存在して、上記範囲の b を使って x = km + b と書ける。このとき xb (mod m) であり、2項定理から xm−1 = (km + b)m−1bm−1 (mod m)

従って「与えられた m が擬素数になるような底」をリストアップしたいとき、m より大きい底を考える必要はない。とりあえず m 回の試行で全数検索できる。さらに、合同式 bm−1 ≡ 1 (mod m)b = m ≡ 0 なら常に不成立、b = 1 なら常に成立。これらは「自明な底」である。

b = m − 1 つまり b ≡ −1 のとき、上記の合同式は m が奇数なら成立、偶数なら不成立(偶数 m = 2 に対しては成立するが、m は合成数なので 4 以上)。これも「自明な底」であり、結局、実質的に問題になるのは 2 ≤ b ≤ m − 2 の範囲の b に限られる。

【例】 合成数 m = 9 は、どのような底に対して擬素数か。これは「8 乗して 9 で割ったとき 1 余るような整数をリストアップせよ」という問題。b = 9 ≡ 0 が条件を満たさないこと、b = 1, 8 ≡ ±1 が条件を満たすことは明白。それ以外の底について、素朴に計算すると:

U = 2^8 = 256 ≡ 4
V = 3^8 = 6561 ≡ 0
W = 4^8 = 65536 ≡ 7
w = 5^8 = 390625 ≡ 7
v = 6^8 = 1679616 ≡ 0
u = 7^8 = 5764801 ≡ 4

実際には、この場合、底が偶数乗されるのだから、b > (m − 1)/2 については、m − b ≡ −b に対する結果を再利用できる(u = U, v = V, w = W)。結論として、9 は自明な底 1, 8(およびそれに 9 の倍数を足した自然数)について擬素数だが、9 が擬素数になるような非自明な底は存在しない。m が大きい場合、m − 1 乗をばか正直に計算すると計算途中の値が大きくなり過ぎるが、その点については抜け道がある。

2019-06-27 ラビン・ミラー擬素数の検索 底 2 ≤ b ≤ m − 2 の強擬素数である奇数 m を「ラビン・ミラー擬素数」と呼ぶことにする。ラビン・ミラー擬素数であるかないかだけを知りたいなら、2 ≤ b ≤ (m − 3)/2 の範囲の底を考えれば十分。なぜなら底 b のラビン・ミラー擬素数は底 m − b ≡ −b (mod m) のラビン・ミラー擬素数でもある。

実際、bd ≡ ±1 (mod m)bb に置き換えても成立。これは条件 (I) の全部と条件 (II) の一部であり、≡ −1 は、条件 (II) における r = 0 の場合に当たる。条件 (II) の残りの部分は、r ≥ 1 に対し be ≡ −1 が成立するというものだが、その場合、bb に置き換えても左辺の値は変わらない(e は偶数なので)。

【例1】 n = 121 なら d = 15b = 3 に対して bd ≡ 1 (mod n) であり、bb に置き換えれば、d は奇数なので右辺は ≡ −1。すなわち、底 b ≡ ±3 の両方に対して 121 はラビン・ミラー擬素数。

【例2】 n = 125 なら d = 31b = 57, r = 1, e = 62 に対して be ≡ −1 (mod n) であり、bb に置き換えても、e は偶数なので結果は変わらない。

2019-06-29 4187という数 The Prime Pages の「素数の珍品」(Prime Curios!)コーナーには、ちょっと前まで次の記述があった。4187 is the smallest Rabin-Miller pseudoprime with an odd reciprocal period. [Post]

「奇数の逆数周期を持つラビン・ミラー擬素数のうち、最小のものは4187」という曖昧な主張だが、「逆数周期」=「逆数を10進展開したときの循環節の長さ」、「ラビン・ミラー擬素数」=「奇数の合成数 q のうち、少なくとも一つの底 b ∈ [2, q − 2] について強擬素数となるもの」と解釈できる。

あるきっかけで、6月21日に上記の記述を目にした。「これは絶対間違ってる」という気がした。実際、全数検索によれば、上記命題には51個も反例がある! 上記の性質を持つ本当の最小のラビン・ミラー擬素数は185(底43など)、その逆数周期は奇数3。仮に逆数が純循環小数になるという制限を付けるとしても、最小は961(底229など)、その逆数周期は奇数465。

主張を正しいものにする一つの方法は「逆数周期が奇数」を「純循環かつ逆数周期が素数」に変えること。別の改訂案は「ラビン・ミラー擬素数」を「底10のラビン・ミラー擬素数」に変えること。後者は「任意の底→底10限定」なので命題が弱くなるが、この弱い形にはある種の理論的な興味がある。というのは、ある合同式を考えると「10進数としての逆数周期」は確率的な素数性テストに利用でき、そこにおいて「底10のフェルマー擬素数」は、やはり擬素数となる(2019-06-21 擬素数の逆数の循環節の長さ)。先週末、強弱両方の主張を新しいキュリオとして提案したが、何の反応もなかった。今週末、コメント送信フォームから上記の指摘を送ってみたら、今度は1時間ほどで返事があり、結局、このキュリオは「弱いバージョン」に改訂された。

*

現時点の本音としては、この弱いバージョンは、つまらない。これがキュリオ(珍品)なら、任意の底 n について、同様のもの(逆数を n 進展開した周期が奇数になる最小のラビン・ミラー擬素数)を考えることができ、それらの一つ一つがキュリオということになってしまう。「どんな底を選んでも、4187より小さいラビン・ミラー擬素数の逆数を素数周期の純循環小数にできない」という強い主張の方が、少なくとも見掛け上は面白い…。

誤りに気付いただけなのに、データベースのシステム上、筆者がこのキュリオの「新オーナー」になってしまった。これも何かの縁、こうなったら「4187のこの性質は、本当に面白いんだよ!」と言えるように、研究してみたい。上記のように、興味深い問題と結び付いていることは確かなので…。

去年まで Prime Curios! に参加すること自体、考えてもなかったけど、今年1月、思い立って「79の不思議」について初投稿(昨年末に「フェルマーのクリスマス定理で遊ばせて!」で書いたもの)。この79の性質は、本当に面白いし、数学的にも奥が深い。一意分解整域になる世界・ならない世界の分かれ目は何か…。答えがあることも、答えを与えてくれる理論の名前も分かっているが、短絡的に答えを見てしまうのも味気ない。もうちょっと山麓をさまよってみたい。

2019-07-01 汝のあるべき姿に戻れ、4187(良い花)! 更新された「素数の珍品たち」。偽から真に変わったのは良いとして、やっぱりしっくりこない…。

あるべき姿(弱いバージョン) 「4187は、逆数を小数で書いたときに循環周期が奇数になるような、10より大きい最小の擬素数(10を底とする)である」 ← この形なら、意味を説明しやすい(下記参照)。

あるべき姿(強いバージョン) 「4187は、逆数の周期が素数になるような、10と互いに素な、最小のラビン・ミラー擬素数である」 ← 今回は立ち入らない。

現在の姿(中途半端) 「4187は、底10において、逆数の周期が奇数になるような、最小のラビン・ミラー擬素数である」 ← 弱いバージョンと同値だが、無駄に難解。「ラビン・ミラー」という条件は冗長。

説明。「10n−1 乗して n で割ったら 1 余る」という性質を持つ自然数 n を考える。式で書くと:

10n−1 ≡ 1 (mod n)

n が「底の10と互いに素な素数」なら(要するに2, 5以外の素数なら)、この関係は必ず成り立つ。例えば7は素数なので、10の6乗を7で割ると1余る。13も素数なので、10の12乗を13で割ると1余る。n が素数でないときは、一般には、この関係は成り立たない。例えば21は素数でない。そして、10の20乗を21で割った余りは1にならない。

ってことは、この関係を満たすか・満たさないかで、素数か素数でないか、簡易的なテストができる。2と5を例外として、この関係を満たさない数は、素数ではない。それはいいんだけど、時々いるんだよね…合成数のくせに、テストを通ってしまう「ニセ素数」が。例えば、9は合成数なのに、10の8乗を9で割ると1余る。ニセ素数。正式には、底10の擬素数と呼ばれる。もっとも 10 ≡ 1 (mod 9) だから、10の何乗を9で割っても1余るのは自明だが…。自明な例も含めて、底10の擬素数を小さい順に列挙すると:

9, 33, 91, 99, 259, 451, 481, …

これらの数(最初の9を除く)の逆数を小数で書くと、1/33 = 0.030303… は循環の周期が2、1/91 = 0.010989 010989… は周期が6、以下順に周期が 2, 6, 10, 6 となる。「あるべき姿(弱)」の意味は「4187も同じ底10の擬素数だが、これは逆数の周期が奇数。ちょっぴり珍しいよ」。丁寧に説明すれば、誰でも理解できそう。

そんなシンプルな話なのに、なぜわざわざ「ラビン・ミラー」という難しいことを言って話を複雑化するのだろう。そもそも「ラビン・ミラー擬素数」とは何なのか。少し考えると「12以上の奇数のうち、底10の強擬素数」という意味になることが分かる。けど、この条件のうち本当に必要なのは「12以上の擬素数」だけ。「奇数」も「強」も余計。「12以上」が必要というのも、その心は、自明な擬素数9を排除したいだけ。9を排除しないと、その逆数 1/9 = 0.111… の循環周期が1(奇数)なので「奇数の周期は珍しい」という話の前提がいきなり崩壊するから…。だったら素直に、「9を除く」とか「10より大きい」って言えばいいじゃん!

「底10の擬素数」というシンプルな条件なら、120万以下の擬素数は300個あって、そのうち「逆数の周期が奇数」は15個だけ(9を除外すれば14個)。まあまあレア。現在の「ラビン・ミラー擬素数」という重い条件を付けると、同じ範囲にラビン・ミラー擬素数は68個しかなく、そのうち14個が「奇数周期」。同じ14個だが、68個中の14個というのは別に珍奇ではない。

条件が必要十分でなく過剰。論理的に間違ってるわけではないが、しっくりこないし、レア感も低下してる。

2019-07-01 追記 ↓エディターの先生が「こんな感じならいい?」と再編集してくれました♪ 多分プロの数学者から見ると、論理的に同値=表面的な言い方の問題にすぎないのでしょうが…。もともとの命題(Post、2009年、偽) 4187 is the smallest Rabin-Miller pseudoprime with an odd reciprocal period. → 1回目の更新(2019年6月。真になった) 4187 is the smallest Rabin-Miller pseudoprime in base 10 with an odd reciprocal period. (正確には覚えてないがこんな感じだった) → 今回の更新(2019年7月) 4187 is the smallest pseudoprime > 10 in base-10 with an odd reciprocal period. (この方がシンプルでいいかと)

2019-07-04 強擬素数よりもっと強い(だいたいこんな感じ?)

q を底 b = 10 の擬素数とする。q − 1 = 2sd と書く。ここで s ≥ 0 は整数、d は奇数。

q − 120, 21, 22, … で割った商 2sd, 2s−1d, 2s−2d, … のうち、b の肩に乗せると ≡ 1 (mod q) となる最小の自然数を e = 2td, t ∈ [0, s] とする。q が擬素数という仮定から、必ずこのような e が存在(強擬素数でなければ t = s)。

mod q において be ≡ 1 なので、b の位数は e の約数。

t = 0 なら e は奇数なので、b の位数は奇数。この条件を満たす q第1種擬素数と呼ぶことにしよう(強擬素数のうちの、特別な場合に当たる)。一方、t > 0 なら e は偶数であり、しかも be/2 ≢ 1 なので、b の位数は、その因子として少なくとも1個の 2 を含み、奇数ではない。

1/qb 進小数で書いたとき、1/q の循環節の長さ(言い換えれば b mod q の位数)が奇数ということは、q が第1種擬素数ということと同値。だから 4187 の性質について「強擬素数」と断るのは冗長で、ただの「擬素数」の範囲で考えても同じこと。

自明な擬素数 9 も同じ性質を持っていて、それを除外しないと、この文脈では 4187 は輝いてくれない。擬素数の底が b = 10 なのも、地球人がたまたま 10 進法を使っているというだけで、数学的必然性に欠ける。それらの点を別にすれば、これは面白いパズルかもしれない。

3番目のキュリオは、15319333 に関するもの。33進数では「prime/2」がこの素数になる、というネタだが、これはボツになった。同時に、4187 について、問い合わせフォームから質問の形でコメントを送信したところ(自分の中の疑問を解決したかった)、こちらには反応があり、結局、思った通り、掲載されていた内容に不備があったと判明。普通、数学の命題は真偽がハッキリするものだが、既存のキュリオには定義が曖昧な用語が含まれていて、そのせいでクリアカットに判断できなかった。意外な展開として、もともとあった 4187 のキュリオが自分のキュリオという扱いになった。

4番目のキュリオは、65281 に関するもの。4187 の「16進数バージョン」のようなもので「逆数の循環周期が偶数になるような最小の底16強擬素数。120万以下に他にこのような数はない」。これは採用された。

2019-07-07 キュリオ3個目(1個採用・1個ボツ?)

(1) 底16の強擬素数の逆数を16進小数で書くと、ほとんどの場合、周期(循環節の長さ)が奇数になる。65281 = 0xff01 は最小の反例を与える。このような数は、120万以下の範囲には他にない。(今週末に提出、2日くらいで採用された。)

1/ff01 = 0.000100fffeff 000100fffeff... ← 4種の数字だけで書ける

(2) 33進数では (prime)33/2 は素数。(prime)33 − (curio)33 も素数。こちらは2週間くらい前に提出したが未編集のまま。ボツになったらしい。

単純に「自分が面白い」と思うものが見つかったら、またネタを送ってみたい。たとえボツになっても、考えを深めるきっかけになるし、それ自体が楽しいので…。

「The Prime Pages」は素数関係では国際的に有名なサイト(テネシー大学)。既知の巨大素数のランキング、素数に関する広範な用語解説を含む。「Prime Curios!」は、一般愛好家向け(マニアックな素数ハンターに限らない)コーナー。面白いトリビアを発見したら、誰でも投稿可(匿名でもOK、登録不要) → https://primes.utm.edu/curios/index.php ちなみに 4187 について間違った予想を投稿した Jonathan Vos Post はソフトウェア関係の大物で、採用数3位(500個以上)のキュリオ貢献者らしい。

5番目のキュリオは、656601 に関するもの。三つ子素数の内側にある最小のカーマイケル数。既に10年くらい前にリベラが「三つ子素数の内側にある底2擬素数」と記述しているのであまり新規性がないのだが、カーマイケルであることを含めて、独立に見つけた。

2019-07-11 トリプル・サンドイッチ・カーマイケル

連続する4個の奇数が、全て素数またはカーマイケル数になるケースがある。最初の例は p = 656597 から始まる。ウェブ上を検索した限りでは、このことはまだ明示的には言及されていないようだが、次のことを組み合わせると、同じ結論に達する。

(1) p = 641 から始まる三つ子素数は (p, p+2, p+6) 型で、かつ p+4 が底2の擬素数。これは、このパターンの最初の例であり、2番目・3番目の例も容易に見つかる(p = 656597, 6212357)。Rivera は2002年に既に同じ発見をしていた(Puzzle 170. Pseudoprimemania)。2番目の4つ組に含まれているのは、ただの擬素数ではなく実はカーマイケル。

底2の擬素数を包み込む三つ子素数の最初の数をリベラ素数と名付けよう。

(2) 2017年、Are there further "sandwich"-Carmichael-numbers? において Peter は、カーマイケル数 n = 656601 について n−2, n+2 が素数であることに注目した(素数にサンドイッチされたカーマイケル数)。実はこれ、ただのサンドイッチではなく n−4 も素数(下側のパンが2枚重ねのトリプル・サンド)。それが2番目のリベラ素数というわけ。

2~4番目のカーマイケル・トリプル・サンドは恐らくいずれも17桁で「下側が2重」タイプ。ただし「小さい順に何番目か」という部分は、Pinch のテーブル(Pseudoprimes and Carmichael numbers)に誤りがないことに依存する。

リベラ自身が(2002年のマシンでは)見つけられなかった4番目のリベラ素数は、p = 18958567877。これについては、19*10^9 以下の三つ子素数を全数検索して確認した。

6番目のキュリオは、113 に関するもの。1/2ポンド、1/3ポンド、1/4ポンドがグラムでいうと(端数は四捨五入)どれも素数になるという観察に基づく軽いネタ。これは前から知っていた純粋な発見で、ずっと「そのうち Curios! に送ろうかな」と思ってたもの。

2019-07-13 クォーターパウンダーというサンドイッチ(ハンバーガー)

パズル(一般向け) 100 より大きい3個の素数 q, r, s を見つけてください。ただし 4q, 3r, 2s は連続する3個の整数(例えば 205, 206, 207)です。

どうでもいいような問題だが、面白いのは最小の解 q, r, s がそれぞれ、1/4ポンド、1/3ポンド、1/2ポンドをグラムで表した値(端数は四捨五入)になること。

このパズルを思い付いたきっかけは「クォーターパウンダー」というサンドイッチ(バーガー)。正直、自分でも他人が面白いと感じるか確信がなかったけど、試しに Curios! に送ってみたら、これが通った。

「クォーター・パウンド」「ワンサード・パウンド」「ハーフ・パウンド」のバーガーは、全部、実在する商品。それらのパティの重さは、グラムでいうと全部素数…というわけ。1/4ポンド、1/2ポンドをパッとグラムに換算できると、実用的にも意外と役立つかも?

7番目のキュリオは、13741。底2擬素数のギャップが6の場所を見つけたので「双子擬素数」に倣って「セクシー擬素数」と名付けた。

2019-07-13 セクシー擬素数

「これはやり過ぎかな」とも思ったが「セクシー擬素数」を Curios! に送ったら、あっさり通った。

「双子素数」「双子擬素数」を拡張して、「セクシー素数」があるんだから「セクシー擬素数」を考えてもいいじゃん、という素朴な発想。(13741, 13747) が、底2における最小のセクシー擬素数。

実は2番目の「セクシー擬素数」ペアは「69」から始まる数。そのことについて一言ジョークを入れても良かったのだが、それはさすがに下品なので思いとどまった。個人のブログなら無問題でも、学校のサイトなので…。「セクシー擬素数」が通ることが分かっていれば、ポーカーフェイスで「2番目の例は、69から始まる7桁の数である」とコメントしたんだけどね!

8番目のキュリオは、4369。「16進レプユニットになる最小の底2擬素数」という観察(0x1111)、その形の2番目は 0x1111111 であるという指摘、それらを結合すると3番目(16進数で1を11個並べた数)になる、という観察。このきれいなパターンには、ちゃんと理由があるのだろうけど、いかにもキュリオっぽい。

9番目のネタは、561825265 に関するもの。「561 も 825265 も底2擬素数、それをつなげた 561825265 も底2擬素数」。これも珍妙だが、こちらはボツになってしまった。掲載基準もけっこう気まぐれ? 桁数が多いと審査が厳しいのかもしれない。調子に乗って「561 も 825265 も20進数では回文数」などと書いたのも、くど過ぎたかな?

10番目のキュリオ。第1・第2千年紀の合計日数は 730487日で素数…というもの。これは通った。純粋数学の世界では、暦・歴史が絡むネタは新鮮だったのかな?

11番目のキュリオは 595039。この素数は16進数 0x595039 = 5853241 と解釈しても素数。それをさらに 0x5853241 = 92615233 と変換してもまだ素数。同様に繰り返して、長さ7の連鎖を作れる最小の数。面白いかどうかは微妙。投稿時、長さ8の連鎖も複数得ていたが、あまり大きい数だと無味乾燥なので、長さ7の方を提出。

12番目のキュリオは 24046。{24043, 24046, 24049} の3個は、どれも底3概素数(本物のセクシー素数のペアの真ん中に、偶数の底3擬素数がある)。このパターンの底3擬素数は 10^10 未満に3個しかなく、しかも2個目は1個目(24046)の倍数。「素数ページで偶数のネタは難しいかな」と思いつつ、面白いからいいや、と提出。

13番目のキュリオは q = 9890881。q と 2q+1 がどちらも底2擬素数になること、そのような数は珍しいこと、4進数のレプユニットはしばしばこのパターンになることを書いた。どれも既によく知られている事柄だったが、Feitsma’s table を使って独立に再発見。「ソフィー・ジェルマン擬素数」と名付け、擬素数の長さ3の Cunningham chain は可能だろうか、と尋ねた。自然な問いなので、これもきっと誰かが既に考えてるんだろうけど…。送信のとき base-4 repunit がNGワード扱いされ当惑した(4th base が俗語で「セックス」だからと思われ。repunit in radix 4 と言い換えて投稿)。

14番目のキュリオは素数 50497 に関するトリビアで、再び暦ネタ。毎月の「2日」「3日」「5日」のような「素数の日付」をカウントすると、400年ごとにこの素数になる。

最初のころは、純粋に「たまたま見つけた面白いネタ」「数学的に自然な問題」を散発的に送っていたが、だんだん「ネタのためのネタ」的要素が混じるようになってしまった。「面白いことがあったら Curios! に提出する」から「Curios! に提出するためにネタを探す」にシフト。ゲームのような面白さもあり、つい夢中になって、2週間くらいの間「週7個まで」の制限ぎりぎり近く投稿してしまった。でも、表面的な現象の不思議さ・物珍しさを次々と追い求め、その背後にある数学を考えないのは浅はかで本末転倒。新しいことを考え学ぶきっかけにはなるのだが、「きっかけ」だけで終わらないように、これからは(既に送った上記のキュリオたちも含めて)現象の意味を掘り下げて考えるようにしたい。

Curios! では採用数ランキングが表示されるので「よし、世界ランク100位に入るまで送ろう」などと思ってしまうが、それは意味のない虚栄心。「次の目標は50位だ・20位だ」などと考えてしまうと、きりがない。巨大素数探しの競争に参加する気になれないのも、同じ理由。

「競争に勝つため」みたいな、目的のために努力するのではなく、それ自体が楽しいから夢中になる、ってのが一番いい。外部的な目的・動機付けなんて要らない。教科書を読んできちんと勉強すれば速いことだって、そうしたければ、自分のやり方で試行錯誤を楽しみたい。非効率だっていい。それ自体が目的だから。結果ではなくそれ自体が幸せだから。

世の中の進歩・学問の発展だって、大きなブレークスルーは「命令されてやる人・義務だから働く人・決められたことを忠実にやる犬」からではなく「それ自体を楽しむ人・気まぐれに行動する猫」から生まれるんじゃないだろうか?

資料を調べたければ(教科書を読みたければ)、そのときはそうすればいい。「今はこうしよう」って感じたら、何でもそうすればいい。「こんなことしてる場合じゃない」って分かっていながら、逃避的にゲームに熱中する…みたいなのとは違うよ。後ろめたい逃避的な遊びでは、純粋に楽しめないからね!

2019-07-27 15番目のキュリオとして、62481801147341(テトラコンタンの異性体の数)を出そうとしたら、2018年9月に既に出されていた。数論の人は純粋志向で、有機化学なんて興味ないだろう、というイメージがあるが、そうでもないのね…。せっかくなのでついでに書いておくと、5より大きい素数になるのは、この C40 に続いて C112 と C149。素数愛好家は、この3個目に反応すると思われ。M149 は有名なメルセンヌ素数なので…。これらは純粋な理論上の数で、物理的な意味で、本当にこの数の異性体が存在し得るわけではない(Isomer Count)。

2019-07-30 堀井憲一郎という人は、読書記録を付けていたがそれをやめて、その理由についてこう言っているそうだ(*)。「本を読みたいんじゃなくて『読んだ本の記録数を伸ばしたくて読む』という気持ちが出てきたから」「数字を数えだすと、数字のほうが大事になって、本体はどうでもよくなってしまう」 上記の現象も同様で、知らないうちに「掲載数を増やしたい気持ち」が出てきて、「純粋に数学を考える気持ち」に干渉するようになった。

ともかく最初は2019年1月ごろ、気まぐれに1回投稿しただけなのに、7月上旬に編集者とメールでやりとりしたのがきっかけとなって、7月には記録上・合計13個も送ってしまった…。計3個くらいボツになったが、11個掲載。10個掲載でランク90位台になって「幼稚な目標」も達成されたのに、そこでやめず、さらにネタを考えてしまう。これはちょっとやばいし(addictive)、あるべき状態ではないと感じた。

本当にそのこと自体を楽しんでいるか? それとも、それをやったことを人に見てもらいたい・評価してもらいたいだけなのか? 昔、1週間かけてヘキサデカン(C16)の異性体10359個を手動で数えたことがあるが、誰かに自慢するためにやったわけではないし、実際それをやったこと自体、誰にも言わなかった。多分そういうスタンスが、自分には一番合ってる…。「面白いことが見つかったら共有するけど、それは副産物」みたいな。

2019年10月31日

追加 Curios

(#15) 2019年8月。553 は、固定された 1 < b < q−1 に対して q, 2q−1, 4q−3 がいずれも b-擬素数になるような最小。#13 で自問した擬素数チェーンの一種(弱い例だが、もっと強い例を見つけるのは困難)。

(#16) 2019年9月。p = 53176534057553 は sqrt(k)*p, k=1..15 の整数部分が素数または半素数になるような唯一の素数 < 10^11 である。

(#17) 2019年10月。アルファベット順でフランス語最後の素数は
20*10^120 + 20*10^66 + 23*10^18 + 23*10^6 + 23*10^3 + 349 =
20000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000023000000000023023349
である。もともとリベラが考えたネタだが、リベラの結果を改善し、採用された。実は整数をあえて分数で表現すれば、アルファベット順でさらに後ろにできるが、それは数学というより「とんち」だろう。

2019-10-22 「最後の素数」(その1)

素数に「本当の最後」はないこと(いくらでも大きな素数があること)は、よく知られている。けれど例えば「無量大数」までの数詞を普通に使うという条件で、五十音順で日本語最後の素数を考えることはできる。Rivera は数日前、フランス語について、同様のことを投稿した。いわく:

「S = 23000000000023023661 は、アルファベット順において、フランス語の最後の素数である」

Alphabetically, the last prime in French: "vingt trois trillions vingt trois millions vingt trois mille six cent soixante et un." By Pierre Tougne (1982), sent by Jean Charles Meyrignac. [Rivera]

上記の主張は、いろいろな意味で正しくない。ABC順でこれより後ろの素数はたくさんある! 数学パズルや素数が好きな方は、挑戦してみてほしい。

〔フランス語の数詞の参考資料〕1000まで1個ずつ書いてあるページ数値を単語に変換してくれるサイト

★考えても分からない方は → ヒント

注: 現在(1961年以降)のフランスでは、公式にはロングスケールが使われる(billion=1兆, trillion=100京)。実際の用例上は、必ずしもそういう言い方にはならないのだが、このパズルでは公式ルールを使う。英語風のショートスケール(billion=10億, trillion=1兆)ではない。英語と違い、フランス語の million, billion などは、2倍以上だと末尾に -s が付く。cent, mille は英語の hundred, thousand と同じで、2倍以上でも -s が付かない(※)。

(※)例外として、下3桁が端数のない 200, 300, …, 900 のときは cents が使われる(200=deux cents, 201=deux cent et un)。80=quatre-vingts, 81=quatre-vingt-un における vingt と同様。ここでは素数を考えているので、例外ケース(100の倍数)は無関係。

「最後の素数」(その1)のヒント: 下記のように、リベラの数 S では ????? の部分に six がある。辞書順で six より後ろの単語が ????? に来るようにできれば、アルファベット順で S より後ろになる例が一つ見つかったことになる。

S: Vingt-trois trillions vingt-trois millions vingt-trois mille six cent soixante et un
T: Vingt-trois trillions vingt-trois millions vingt-trois mille ?????

2019-11-01 「最後の素数」(その2) アン・ドゥー・トロワ、おフランスざーます!

その1の続き。フランス語なんて縁がない人でも「アン・ドゥー・トロワ」くらいは聞いたことあるでしょう。ABC順で trois の方が six より後なので、????? の部分が trois やそれに似た言葉になれば、Sより後ろの素数の一例となる。

S: 23000000000023023661
Vingt-trois trillions vingt-trois millions vingt-trois mille six cent soixante et un
T: 23000000000023023???
Vingt-trois trillions vingt-trois millions vingt-trois mille ?????

従って、上記の形の数のうち、下3桁が「3」か「30」台か「300」台になる素数が一つでもあれば十分だが、最初の2種類の可能性は、すぐ否定されてしまう。

23000000000023023003 = 3で割り切れる
23000000000023023031 = 409で割り切れる
23000000000023023033 = 3で割り切れる
23000000000023023035 = 5で割り切れる
23000000000023023037 = 19で割り切れる
23000000000023023039 = 3で割り切れる

そこで下3桁が「300」台を考えると、1個だけ「343」が素数となる。

S: 23000000000023023661
Vingt-trois trillions vingt-trois millions vingt-trois mille SIX cent soixante et un
T: 23000000000023023343
Vingt-trois trillions vingt-trois millions vingt-trois mille TROIS cent quarante-trois

これで「Sはアルファベット順で、フランス語最後の素数」という主張を崩すことができた。この他、もし仮に下3桁を「001」「013」または「020」台または「600」台のある種の数にできれば S より後ろになるが、そのような素数は「647」(Six cent quarante-sept)だけであり、これは「661」(Six cent soixante et un)よりABC順で前なので、この桁数では T が唯一の反例。

注: フランス語の正確なスペルを覚えている必要はない。その1でリンクした参考サイトからコピペすれば十分。「フランス語」という表面に惑わされず「アルゴリズムの問題」と割り切ろう。

しかしまだ問題が解決したわけではない。実は T も「本当の最後」ではなく、アルファベット順でもっと後ろの素数を作る方法がある。その方法は「とんち」ではなく、あくまで「普通の数詞」の範囲だが、「京・垓・𥝱」の類いの非日常的表現(大きな数の名前)が絡んでくる。「ばびっと数え歌 でかい数編」がヒントになるかもしれない。

最終的には、あるタイプのばかでかい数の下3桁を調整して、なるべくABC順で後ろの素数を見つけることに帰着される。一般の整数について、素数性の判定は簡単ではない。上記の S や T にしても「たったの trillion のオーダー」とはいえ、ロングスケールでは2の64乗を超える。素朴な試行除算だけでは厳しい。

ここでは取りあえず PARI の isprime で素数性を証明した。24桁以内の数については「最初の13個の素数を底に SPRP なら、本物の素数」ということが証明されているので、それを自力でやってもいいのだが、まあ PARI を使うのが手っ取り早いでしょう。

2019-11-02 「最後の素数」(その3) 巨獣召喚

「メキニ・メキニ・ヌダラダラ~ いでよっ、アンデシリョン!」

じゃじゃーん Undécillion 「ぎゃおーん!」

1000000000000000000000000000000000000000000000000000000000000000000

テロップ「巨大怪獣アンデシリョン 10の66乗(100分の1無量大数)」

S や T の頭にある trillions を undécillions に置き換えれば、それだけで「もっと後ろ」の素数が非常に多数考えられる(アルファベット順で u は t より後ろなので)。S を見たとき最初に考えた抜け道は、これだった。だが安心するのはまだ早い。

ラスボス「ワーハッハッ、66乗ごときで巨大とは笑止千万・無知蒙昧。唸れ! 衝撃の! ヴィジャンティリョン!」

ぞぞっ・ぞぞっ・ぞぞぞっ Vigintillion 「うをおーん!」

1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

テロップ「檄!帝国・最終巨獣ヴィジャンティリョン 10の120乗

ラスボス「見ろ! 無量大数がゴミのようだ」

ABC順で v は u よりさらに後ろ。ABC順でこれより後ろの単位はない。これら2種類の単位を使って「フランス語最後の素数」が構成される。V1 より V2 の方が後ろであることに注意すれば、この先はほぼ一本道だろう。

V1: Vingt-trois vigintillions 23*10^120
V2: Vingt vigintillions       20*10^120

2019-11-06 「最後の素数」(その4) 10の120乗まで、キッチリ回せ!!

ここまでの話から、
p = 20*10^120 + 20*10^66 + 23*10^18 + 23*10^6 + 23*10^3 + x
0 ≤ x ≤ 1000
の形の素数が存在すれば、その中にフランス語最後の素数(ABC順)があることが分かる。だが100桁を超える巨大な数で「下3桁しかいじれない」というのは、相対的な大きさで言えば「針の穴のような細い隙間で素数を探す」ようなもの。そんな都合のいい素数がそもそもあるのか。あるとしても、どうやって見つければいいのか?

実は PARI の nextprime を使えば、候補はすぐに見つかる。該当するのは x = 349 または 657 または 727 の三つ。いずれの x に対しても p が本物の素数になることは、別途証明される。349 は trois から始まる言葉だが、残り二つは s から始まる言葉。だから、x = 349 のケースが「ABC順で最後」。

million, billion, trillion, ... と上がっていっても、ABC順で trillion より先には行けないように思える。常識の範囲ではそうだが、諦めずに11番目まで上がると undécillion が現れて「Tの束縛」が破れ、さらに20番目まで上がると vigintillion が現れて「Uの束縛」も破れる。もっと上の数詞は考えられるが、W より後ろの文字から始まる数詞はない。

相対的には「針の穴」でも、調べてみると、案外、素数が詰まっていた。100以下の素数は25個(4%)、1000以下の素数は168個(2%未満)…という減り方(どんどん密度が薄くなる)から素朴に考えると、122桁の数に1000分の3(0.3%)も素数が含まれているのは、ちょっと意外な気もする。エラトステネスのふるいによれば、数が大きくなればなるほど、何重にも何重にも「ふるいの弾幕」が張られ「一度も弾に当たらない(何の倍数にもなっていない)数」はまれになるはず…。もっとも素数が薄くなると「新しい弾幕の砲台」も減る。2の倍数・3の倍数・5の倍数・7の倍数…といった「古い弾幕」はどこまでも有効だが、「新しい弾幕」がだんだん薄まる結果、意外と「生き残る素数」も出てくる。

具体的に、
pi(x) = x/log(x)
pi(10^121) / 10^121 ≈ 0.003589
なので、計算上、122桁の数では整数1000個につき素数が3~4個ある。

素数マニアはよくメルセンヌ素数の類いを持ち出して「とんでもない桁数の素数が見つかりました。世界記録更新!」と大騒ぎする。2019年現在、既知の最大素数は約2500万桁、2番目は2300万桁。一見「こんなに大きな素数は非常に珍しい」かのような印象を与える。ところが上記と同様に考えると、同じ桁数の素数はもっともっといっぱいある(大ざっぱに、整数1億個につき1個以上)。巨大素数の新記録はソフト・ハード両面の進歩、工夫と情熱の産物であり、人類の進歩としては素晴らしいことなのだが、人類を外から見ると「2000万桁程度の素数は何億個も何兆個も何京個もあるのに、そのうち1~2個しか見つけられない」というのは自慢にならない。「おれの素数の方がでかいぞ。1000万桁を突破したぞ!」と虚勢を張っても、実際にはたった1000桁の因数分解ができない…。

(#18) 2019年10月。13323377777 は、英語でスペルアウトしたとき100文字を超える最小の素数である。ただし、全て (resp. 最後) の hundred の後ろに and を挿入するなら、1117373377 (resp. 3323373377) がそれに当たる。「数字をスペルアウトする」系のネタで #17 からつながる。採用された。

2019-10-23 10億102万4867

1001024867 は、普通に英語でスペルアウトしたとき、アルファベットの20種類の文字を必要とする最小の素数。「これは面白いものが見つかった!」と思いつつ、検索してみると…。またしてもリベラに、5年くらい先を越されていた(Puzzle 744)! さすがはカーロス・リベラ。さすがは無冠の帝王(笑)。リベラは、この手のネタにめちゃくちゃ強いだけでなく、有名なパズルサイトを運営していて、世界中からフィードバックを得ている。ちなみに、半年くらい前「あしたのジョーの登場人物と同姓同名ですよ」とメールに書いてみたが、その点については何の反応もなかった。数学遊び一筋で、漫画には興味がないのかもしれない。

リンク先のページでは、アルファベット22種(アクセント記号の有無は区別しない)を使うスペイン語の素数として、10^120 + 10^42 + 10^36 + 10^12 + Cn の形を扱っている。読者が C6 = 5410587 を報告、リベラはさらに小さな C2 = 3710587 を得ているが、これは本当の最小 C1 ではない。C1 の値は昨日リベラ自身が投稿し、筆者も独立に同じ値を得た。小さい順で C2 は2位、C6 は6位になるようだ。パズル好きの方は、C1 を探してみよう!

これらは、あくまで数学パズル。語学はあまり関係ない。スペイン語なんて「ウノ・ドス」くらいしか知らなかったが、数字をスペルアウトするアルゴリズムは資料を見て適当に考えた。「最後の素数」も同様で、フランス語はあんまり関係ない(たとえフランス語の達人でも、それだけでは解きようがない)。問題の核心は「100桁くらいの数の素数性をどう判定するか」。この部分は難しいが(もちろん試行除算だけでは無理)、やればできる範囲だろう。

(あくまで遊び。何かの役に立つわけではない。入試に役立つみたいな世俗的メリットは、何もない。)

リベラの下記のポカは、本人の計算ミスではなく、読者からのフィードバックをノーチェックでそのまま転載したのが原因だろう。少しでも疑う気持ちがあれば、簡単に反例が見つかる。でも肯定的に考えると、リベラがこれを投稿したから、話が広がった!

(#19) 2019年10月。197 について。オイラーの多項式を別にすると |8*k^2 + 8*k − 197| は、この形の最良の素数生成多項式である。k=0..30 に対して、別々の31種類の素数を生成する。絶対面白いはずだが通らなかった。既知と判断されたのだと思われる。このネタも、実はリベラの 2426256797 についてのネタ(数学的に正しくない)について考える過程で発見。

2019-10-25 連続31素数を生成する2次式

8k2 + 8k − 197 の絶対値を考えると、それは k = 0, 1, …, 30 に対して相異なる素数。連続40素数を生成するオイラーの式 k2 + k + 41 にはかなわないが、それに近いものである。

オイラーの式を別にすると、この型(1次と2次の係数が同じ2次式)の明示的な世界記録は 6k2 + 6k + 31 の連続29素数(A060844)だが、こっちは連続31素数。ある意味、世界記録を塗り替えた!

素数生成多項式は検索が盛んであり、8k2 + 8k − 197 のような単純なものは、当然とっくに知られているはず。同じ形の式はなぜか見つからないが、本質的に同じ 8k2 − 488k + 7243 が2005年に報告され、A272160 にもなっている。冒頭の形の方がシンプルで良いのに、なぜそんな書き方をするのか。想像だが「k = 0, 1, …, 60 の連続61入力に対して素数になる」と言いたいために、複雑な形にしているのでは…。実際に生成されるのは31種であり、同じ素数を2回ずつ生成して見掛けの数を水増しするのは、美しくない。「1次と2次の係数が同じ(小さい自然数)で、定数項が小さい素数」と決めれば(※)、全数検索は容易であり、従ってランキングを確定できる。その結果、連続29素数を生成する別パターンの式も見つかった。

「素数生成は研究され尽くして、遊びで新規参入する余地などない」という気がするが、アイデア次第で意外と隙間もあるのかもしれない。例えば、連続○素数という数は小さくても、それら○個の素数の全て(あるいはほとんど)が何か特別な性質を持つ…というような珍しいパターンを探すと面白いかも。

(※)この前提自体、必ずしも自然ではないが、定数項が正の場合、そうすれば簡単な漸化式でも書ける。オイラーの k2 + k + 41 でいえば、生成される 41, 43, 47, 53, 61, … は定数項を初項として、次々に 2, 4, 6, 8, … を足しているとも解釈可能。

(#20) 2019年10月。f(0) = 193 から始めて f(k) = f(k-1) + 90k for k=1..9 は10個の素数を生成し、それらのどの素数も、桁の和が等しい。上記と同系統の素数生成2次式だが「桁の和一定」という条件を付けたもの。このような最小の例。この時点で既に14要素くらいの同様の例を得ていたが、試しに小さいものを送ってみた。9の倍数を足して桁の和が変わりにくいのは当たり前という印象もあるだろうが、実際には桁の和が固定されるわけではなく、しかも素数という条件と重なるので、要素数が多い場合、シンプルな例はかなり少ない。

(#21) 2019年10月。46662004177 = 0xADD45ADD1 は、次の素数を生成する方法を16進で「自己言及」する最小の素数。14進なら ADD9ADD3 があり。ポインターのアドレスのようで面白いと思った。

2019-10-27 誰も考えことのないタイプの素数

p = 46662004177 は、一見、何の変哲もないランダムな素数に見える(反復桁が多いという特徴はあるが)。

16進数に直すと ADD45ADD1 であり、これは「45を足せ。1を足せ」と読める。実際に p+45+1 を計算すると何が起きるか。結果は q = 46662004223 であり、q は p の次の素数。すなわち概念上、素数 p は f(x) = x+45+1 という操作をコーディングした「ゲーデル数(のようなもの)」と解釈でき、その「ゲーデル数」が表す操作をその「ゲーデル数」自身に適用することで次の素数が生成される…という、ある種の自己言及的性質を持っている。ADD は自然言語であり、本物のゲーデル数ではないが、ちょっとワクワクする!

14進数の ADD9ADD3 すなわち10進数の 1159386637 は、さらに小さな同様の例。

36進数なら、アルファベットの全部の文字が使える。「完全自己言及素数」(自分自身を生成する操作を表す文字列。その文字列の指示に従うと、その数自身になる)を作れるかもしれない。

(#22) 2019年10月。129023 は、2進数で1が15個ある最小の素数。下4桁を並び替えた 2039 は、2進数で1が10個ある最小の素数。「2進数で~」の部分は既知だが、並び替えの部分が面白いと思った。#20 の「桁の和」つながりの小ネタ。

(#23) 2019年10月。285281 は、1より大きい連続奇数から作ることができる最小の4つ子素数の先頭。すなわち (285281, 285283, 285287, 285289) は 281, 283, 285, 287, 289 を文字列として連結することで作ることができる。#19の出発点となった 2426256797 は10要素のベクトルの先頭要素だが、24, 25, 26 を含んでいる(そのような最小例ではない)。もっと小さい規模の組み合わせで同じようなことを考え、4要素のベクトルに行き着いた。「1より大きい連続奇数」の「1より大きい」を外すと、一桁の奇数を並べた形のトリビアルな例が見つかる。

2019-10-26 「対リベラ戦」第3ラウンド(笑)

数日前、Rivera は P(0) = 2426256797 が次の性質を持つことを指摘した。

性質「k=1..9 に対して P(k) = P(k-1) + 2k も素数である」

上記の主張は正しいが、それに続けて「この性質を持つような、もっと大きな列は知られていない」とも主張していて、それが問題。もっと大きな例を直接構成することは、易しい。

この列は、初項が素数 p で、階差 2, 4, 6, ... を持つのだから、一般項は p に三角数の2倍を足したもの。すなわち k^2 + k + p の形のオイラー風・素数生成式になる。これは熱心に研究されている分野で、同じ性質を持つ P(0) は何千個も記述されている(A191456)。リベラは「より大きなものは知られていない」と言うけれど、2426256797 は何千種類も知られている中で「13番目に小さい雑魚」にすぎない(追記)。

だからといって、速攻 Curios の編集者に連絡するのは「先生に言い付ける」みたいで嫌な感じなので、またメールを書いて直接リベラに連絡したのだが…。「数学的に明らかに間違っている主張」に気付いた場合、瞬時に撤回するのが普通だろう。けれどリベラは「どうするか未定。もう少し考える」という反応。仕方がないので、2426256797 を「無理やり面白く」する方法を考えてみた。

「k=1..9 に対して P(k) = P(k-1) + 2k も素数になるような最小の素数(ただし桁の6個以上が偶数であるとする)は、P(0) = 2426256797」

一応、数学的に正しい主張になった(笑)。リベラには「スペイン語バージョン」の C2 も取り消すようにそれとなく言ってみたのだが(C1 が本当のチャンピオンで C2 はあまり面白くない)、思い出が詰まっているのか、これを消すつもりはないらしい。「フランス語バージョン」については、残念ながら明らかな反例が見つかったので、議論の余地はなく、直接編集者に連絡、リベラの数(実際には第三者の主張を引用したもの)は削除された。フランス語ネタ・スペイン語ネタ・オイラー風ネタと1週間のうちに3回もリベラに文句を言っているが、たまたまタイミング的にそうなっただけ。あくまで数学上の話であり、私生活でけんかをしているわけではない(メール上ではフレンドリーな関係)。それどころか、リベラは「クォーターパウンダー素数113」がたいそう気に入ったらしく、この週末もっと大きい例を探し求め、既に100桁以上の例を得たという。

リベラのサイトは、専門家向けの記事で参照されることもある。そんな大物なのだが、天才にありがちな「大ざっぱな面」も持っているようだ。水も漏らさぬ全数検索や考察・証明をしないで「これが最良」と主張しているケースがある。「昔のパズルの結果を投稿しているので、当時見つかった最善に当たる」とのこと。結果的にそれが刺激になるのだから、悪いことともいえないが…

2019-11-04 2426256797について

リベラの P(0) = 2426256797 についての観察は、単に「k=1..9 に対して P(k) = P(k-1) + 2k も素数である」というだけでなく、「P(k) の直前の素数は P(k-1) である」すなわち「その部分の素数ギャップが 2k である」ということを言いたかったらしい。それにしても「より大きな例は知られていない」という主張はおかしい(1秒で検索できるのだから)。「最も小さな例である」と言うのなら、これはこれで興味深い。

Prime Gaps     2 4  6   8   10    12     14      16       18
Primes       +02 6 12  20   30    42     56      72       90
 2426256797 : PP-P--P---P----P-----P------P-------P--------P
 6430890287 : PP-P--P---P----P-----P------P-------P--------P
 8518049207 : PP-P--P---P----P-----P------P-------P--------P
55065405671 : PP-P--P---P----P-----P------P-------P--------P
55373581421 : PP-P--P---P----P-----P------P-------P--------P
60590486081 : PP-P--P---P----P-----P------P-------P--------P
66945470477 : PP-P--P---P----P-----P------P-------P--------P
76566117071 : PP-P--P---P----P-----P------P-------P--------P
78067026071 : PP-P--P---P----P-----P------P-------P--------P
95748657617 : PP-P--P---P----P-----P------P-------P--------P

#22 と #23 の間で、リベラからメールが来た。#6 を一般化した問題の大きい解だった。お礼として、2426256797 の「間違い」を簡単に検出できる3行の Pari コードを返信。ホイールシーブの一種(追記)。

f(P) = q=P; for( k=0, 9, q+=2*k; if(!isprime(q),return) ); print(P);
g(n) = f(n+11); f(n+17); f(n+41); f(n+101); f(n+137); f(n+167);
forstep( n=0, 3e9, 210, g(n) );

(#24) 2019年12月。1062881: For n=9, 10, 11, 12, 13, the largest prime you can express using only n copies of n without concatenation, with any of the four operations and parentheses, is 2*n^(n-3)-1: (9+9)*9*9*9*9*9-9/9=1062881, (10+10)*10*10*10*10*10*10-10/10=19999999....

2019-12-11 わたしがタイタンになった日

ある理由から f(n) = 2nn−3 − 1 の形の素数を考えた。n ≤ 1000 の範囲では n = 4, 6, 7, 9, 10, 11, 12, 13, 129, 169, 645 の11個に限られる。f(7) = 4801, f(9) = 1062881, f(10) = 19999999 は、curios でもある。

副産物として 2 × 645642 − 1 が素数と判明。1805桁の素数に行き当たった。「1000桁以上の素数の発見者」は、かつてタイタンと呼ばれた(今どきのコンピューターなら大したことではないが)。f(n) 型の次の素数があるとすれば、恐らく1万桁以上(n > 3000)。

2019-12-12 わたしがタイタンになった日(2)

以下 n ≤ 1000 とする。g(n) = 2nn−3 + 1 の形の素数n = 3, 6, 8, 20, 75, 168 の6個の場合に限られる。

h(n) = nn−2 + 1 の形の素数は、n = 4, 6 の場合の 17, 1297 に限られる。

h′(n) = nn−2 − 1 型の素数は、n = 3 の場合の 2 しかない。

そうすると [6, 13] の範囲の8個の自然数 n のそれぞれについて、f(n), g(n), h(n) の少なくとも一つは素数である。特に、[9, 13] の範囲の連続5整数に対して、f(n) は素数。

これらの観察の意味は後回しにして、次に (n + 1)nn−4 − 1 型の素数を考えると、n = 5, 6, 9, 13, 22, 44, 49, 228, 344, 851 が該当する。最後のケース 852 × 851847 − 1 は、2485桁の素数。

2019-12-13 9個の9で書ける最大素数

昨日までの考察は「n 個の n と四則演算・丸括弧だけを使って書き表せる最大の素数は何か」という問題に関連している。例えば「9個の9」の場合、全数検索によれば p = (9+9)*9*9*9*9*9-9/9 = 1062881 が最大の素数。文字列としての連結(例えば2個の9を「99」として使うこと)は許されないものとする。

この「○個の△を使って何々を作れ」は古典的な数学パズルの一つであり、全数検索の原理は、「西暦・平成パズル」を解くアルゴリズムとして紹介されている。それだけなら「ありふれた問題」だろう。

ところで、上記の p は下記の f(9) に他ならない。n = 10 に対する解も、同様に
f(10) = (10+10)*10*10*10*10*10*10-10/10 = 19999999
であり、この性質は n = 11, 12, 13 に対しても成り立つ(しかし n = 14 に対しては不成立)。

簡単な考察によると、n ≥ 4 に対して、もし h(n) が素数ならそれが解であり、そうでなくもし h′(n) が素数ならそれが解であり、そうでなくもし g(n) が素数ならそれが解であり、そうでなくもし f(n) が素数ならそれが解。n = 9, 10, 11, 12, 13 の連続5整数が、この最後の「そうでなくもし」に該当し、その結果「n 個の n で書ける最大素数」が f(n) の形となる。これら4関数の値が一つでも素数になれば、面倒な全数検索を省いて、いきなり解が得られるわけである。この発見(分かってみれば当たり前なのだが)は、小気味よい。

「9個の9」「10個の10」…「13個の13」の最大素数が全部同じパターンになる、という点が、注目に値する。「7個の7」も同じパターンだが、「8個の8」については
g(8) = (8+8)*8*8*8*8+8/8 = 65537
となる。

2020年のCurios

24049

(#25) 2020-07-17: Consider Pell's equation x^2-Dy^2=1. If the least solution is greater than the least solution for any smaller D, then D is usually a prime congruent to 5 mod 8 (e.g., D=61); D=24049 is the largest exception to this, below 10^8.

2020-07-27 ところで、ペル・チャンピオンたち(「その30」参照)のほとんどは 8k+5 型の素数だが、値が小さい場合、例外がある。409 と 24049 は 8k+1 型で、この 24049 が「最後の例外」ではないかと思われる。他のチャンピオンたちの記録は「ケイリーの6乗アシスト」による「ドーピング」(?)の結果だが、24049 は「6乗アシスト」なしで(負のペル経由の「2乗アシスト」だけで、つまり3乗の違いという巨大なハンディーを物ともせず)チャンピオンになってしまうわけで、非常にユニークな素数(言い換えると、その平方根の連分数展開は極めて珍しいパターン)といえるだろう。1週間以上前の話だが、このネタで 24049 の方は、素数キュリオに収録された。

2020-07-29 風変わりなチャンピオン24049

24049のトリビアは次の通り。

「ペル方程式 x^2-Dy^2=1 を考える。その最小解が、より小さなDに対するどの最小解よりも大きいとき、普通、Dは8を法として5と合同の素数である。10^8未満において、D=24049はこれに対する最大の例外である。」

ペルでちょっと遊んだことがある方ならおなじみでしょうが、D=61やD=109の場合、最小の自然数解が記録的にでかくなる。この「記録的」現象が起きるDを調べると、ごく一部の例外を除き、8で割って5余る素数になっている。この観察は「野蛮な解法(その11)」でメモした。大筋では「その29」のケイリーのNoteと結び付いていた。もし x^2-Dy^2=−4 に意味のある解があるなら、その解のざっと6乗がペルの最小解であり、この現象が起きる必要条件(十分条件ではない)が、8で割って5余るということ。細部の説明は少し間違ってるかもしれないが、そんな感じで「8を法として5と合同の素数」が大暴れ。

けれど、それ以外の素数が新記録を作るケースがある。D=24049 は、その最後の例! …と言い切りたいところだが、残念ながら、野蛮な方法では「10^8未満において」というただし書きを消せない。実際にはDが素数のケースについて、もう一桁上の10^9まで全数検索していて、頑張れば「10^9未満において」まで風呂敷を広げられるが、いずれにしても、単なるブルートフォースでは有限の範囲でしか議論できない…。直観的には、上記「6乗オーダー」をそれ以外の方法で乗り越えるのは無理なので、D=24049 が最後だと予想されるが、本当にそうなのだろうか。議論の便宜上、そうだと仮定するとして、24049 という数は何がそんなに特別なのだろう?

学校の数学には必ず正解があるんだろうけど、こういう「遊びの数学」「野性の数学」は分からない。頑張ればできることなのか、専門知識が必要な難解なことなのか、はたまた専門家にも未解決の問題なのか…

数論は未知がいっぱいの不思議な世界なのに、散策を楽しむ暇もなく、規格化された教科書を与えられ、天下り的に理論を押し付けられ、競争材料にされ、一般的なイメージとしては「数学=ストレス」になっているのは、切ない。教科書はゲームでいえば攻略本のようなもの。ゲームをしないで攻略本だけ読んでも、楽しいわけない。ひたすら高い山に登りたければ「200年前の数学者が10年かけて見つけたこと」を3行にまとめてもらった方が効率がいいのだが、幸せを味わいたいのなら「200年前の数学者が発見したこと」を独立に再発見する喜びの方が大きい。

63158401

(#26) 2020-08-01: The exact number of seconds in two years can be prime: 63158401. This happened for example in 2011-12, 2012-13, 2016-17, when we had 1 leap day and 1 leap second. The number of days in the last two millennia was also prime (see PC730487).

#25、#26は両方収録されたが、#26に関してはネタがかぶったため(別の方が実質的に同じことを投降し、未編集のままになっていた)、その方の名義で掲載された。わざわざ G. L. Honaker, Jr. からメールで連絡があって、何事かと驚いた(これまで採用になっても、不採用になっても、一度もメール連絡などなかったので)。

199081

(#27) 2020-08-09: The smallest prime of the form p^3+q^3+r^3, where (p,q,r) is a prime triplet.

シンプルでたわいないが、面白いと思ったので…。

2019-07-17 西暦1年1月1日から2000年12月31日までの日数は?

第1・第2千年紀は、合計何日あったのだろう?

天文計算や暦の計算をする人なら、この二つの日付のユリウス日(JD)を考えたことがあるだろう。1582年の改暦前のユリウス暦を単純にさかのぼれると仮定すると、西暦1年1月1日正午は JD 1721424、一方、グレゴリオ暦2001年1月1日正午は JD 2451911 なので、この2000年間は730487日

次のように考えると、上記は簡単に暗算可能。純粋ユリウス暦なら2000年間は、365.25×2000 = 730500日。それに比べ、グレゴリオ暦では1582年の改暦で日付が10個飛ばされ、1700年・1800年・1900年の2月29日もないので、トータルで13個、日付が少ない。730500から13を引けば、730487。計算は単純だが、数学だけでは解けない(1582年に10日間がドロップされたという史実に依存)。純粋なグレゴリオ暦なら2000年間は730485日(400年につき3日少ないので、計15日少ない)。従って、グレゴリオ暦をさかのぼった西暦1年1月1日はユリウス暦の1月3日、逆にユリウス暦の1年1月1日はグレゴリオ暦の0年(いわゆる紀元前1年)12月30日。「暦の違いで、この時期の日付は2日ずれること」も、天文計算者なら経験済みかもしれない。

で、何が面白いかといえば、730487は素数ということ。2000年間においては、1年の平均日数が2000倍される。400年周期のグレゴリオ暦なら、400年間の日数が5倍される。結果は合成数になって当然だが、改暦のときのギャップによって、思いがけない現象が起きた。逆に、2000年間の日数が素数になるとしたら、必ずこの 730487 になる(1年の平均日数が365.24以上、365.26以下というような条件が付くが、回帰年についての現実の値を考えると、まともな太陽暦は必ずこの条件を満たす)。

2019-07-18 西暦1年1月1日(その2)

昨日の計算では「ユリウス暦を普通にさかのぼれる」と仮定した。実際、西暦8年ごろまでは、さかのぼった結果は、歴史上の日付と一致するらしい。それより前の約50年間は複雑。紀元前50年ごろ、ユリウス暦が導入された直後、ローマでは暦の運用を誤り、4年に1回のはずの「うるう年」を3年に1回入れていたという。間違いの詳細については断片的史料しかなく、結論が出ていない。

うるう年を入れ過ぎれば、当然、カレンダー上の日付進行がもたつく。結果、最大約3日の遅れが生じ、理論上の正しいユリウス暦(以下J)の−8年(=紀元前9年)3月4日が、現実のローマでは「3月1日」だった可能性がある。その後、カレンダーを早送りしてJに追い付くため、臨時に平年ばかりを連続させ、−4年3月3日Jがローマの「3月1日」、0年3月2日Jがローマの「3月1日」、4年3月1日には史実の日付がJと一致、それ以降は普通にうるう年が挿入され、正しく運用されてた…というのが一つの説。別の説では、0年3月1日以降、史実=J。

(I) 後者の説だと、歴史上の「1年1月1日」は実際に1年1月1日J・土曜日、史実の2000年間は730487日。

(II) 前者の説だと、歴史上の「1年1月1日」は1年1月2日J・日曜日、史実の2000年間は730486日。

(III) 参考として、グレゴリオ暦をさかのぼった「1年1月1日」は1年1月3日J・月曜日、2000年間は730485日(グレゴリオ暦では400年ごとに曜日が循環するので、2001年1月1日と同じ曜日)。

現実の歴史では、1582年より前にグレゴリオ暦は使われていない。史実は恐らく (I) か (II)。

2019-07-24 5分で覚える! グレゴリオ/ユリウス暦・日付変換暗算法

簡単。意外と役立つ。「シェイクスピアの命日4月23日は今の暦で何月何日?」みたいな場面で。

「グレゴリオ暦(以下G)は、ユリウス暦(以下J)に比べ、400年につき3回、2月29日が少ない」ことはご存じでしょう(知らなかった方はこの機会に確認を)。

つまりGはJより400年につき3日短く、短いのだから日付進行が速い。例=2000年1月1日Jが「1月14日G」とすれば、2400年1月1日Jは「1月17日G」(← 400年前と比べ、日付が3日分「未来」)。

問題は「いつ何日ずれるか」。具体的な「ずれ日数」。何種類か覚え方があって、どれか一つで間に合うので、気に入ったのをどうぞ↓

  1. グレゴリオ暦への改暦(1582)のとき、日付が10日飛んだ。1582年10月4日の夜に寝て、起きたら10月15日になってた! なにそれ、まじ?! タイムスリップ?! この話は1度聞いたら絶対忘れないよね。細かい日付はさておき、ポイントは、1600年ごろ日付が10日飛んだ。だからそれ以降、同じ日の日付がG世界では「10日未来」(1600年1月1日J=1月11日G)。
  2. もう一つの覚え方=2000年に差が13日(2000年1月1日J=1月14日G)。改暦の直接の理由は、キリスト教の復活祭絡み=不吉な「13日の金曜日」と関係あり。改暦した人はグレゴリオ13世。13がキーワード!

あとは「400年につき3日ずれる」という事実と組み合わせれば、2400年のずれは16日、2800年のずれは19日、3200年のずれは22日。逆方向に、1600年のずれは10日、1200年のずれは7日、800年のずれは3日、400年のずれは1日、0年のずれはマイナス2日。ずれがマイナスってことは、逆にJの方が「未来」。例=西暦1年1月1日Jは、0年(つまり紀元前1年)12月30日G。

最後の仕上げ。ずれの原因「2月29日の有無の違い」は、「400の倍数以外の」100の倍数の年に発生。だから上記を基準に直前の400の倍数の年を考え、100年ごとに1日足す方向で。例=1701、1801、1901年のずれは、それぞれ11、12、13日。2101、2201、2301年のずれは、それぞれ14、15、16日。暗記しなくても、順を追って考えればすんなり。

例題 ロシアの文豪ドストエフスキーの誕生日は、当時のロシアの暦(J)で1821年10月30日。Gに換算すると何月何日?

換算法 1600年のずれ10を基準に。18xx年のGは12日「未来」。10月30日の12日「未来」=指折り数えれば11月11日。意外と簡単でしょ?

NOTE: 式で書くと、10月30日 + 12 = 10月31日 + 11 = 11月11日。簡略に、10月30日 + 12 = 10月42日 = 11月11日(10月は31日までなので、1繰り上がって余り11日)。

練習問題 シェイクスピアは、当時の英国の暦(J)の1616年4月23日に亡くなりました。(1) グレゴリオ暦では何月何日でしょう。 (2) 来年「ユリウス暦のシェイクスピアの命日」に記念イベントを開くとしたら、現在の暦(G)の何月何日? (答え合わせはタイトル・テキストで →

(補足) 厳密に理解したい方へ。実用上、普通そこまで考える必要ないけど、ずれが拡大するのは「Jにある2月29日が、Gにないとき」。400の倍数以外のxx00年1・2月Gは前年のずれのまま。上記の暗算法を単純に使うと、まれに(400年につき2カ月×3回)、計算が合わない期間が生じる。解決法=この手の計算では「1年は3月1日に始まり、2月末日に終わる」と解釈するのが定石。例=1900年1・2月は1899年と「同じ年」。

2020-06-17 半減期の「1年」は何日か? 常識の落とし穴

ウィキペディアの「コバルト」のページによると、コバルト60の半減期は「5.2714年」だという。これは何日だろうか?

単純に1年=365日(★)とするか。天文計算のデフォで、1年=365.25日(★★)とするか(ユリウス年)。それとも現実の暦を使って、365.2425日(★★★)とするか(グレゴリオ年)。それらの定義によると、上記の半減期は、それぞれ:
1924.06日
1925.38日
1925.34日
となる(小数第3位以下は四捨五入)。バラバラの値になってしまった。「5.2714年」のような細かい数字を言うときは、まず「年」の意味を定義しないと議論が成り立たないことが分かる。

驚いたことに、上記3種類の解釈は、どれも正しくないようだ。核物理の世界では、
1年 = 31556926秒 = 365.24220日(☆)
と定義する習慣が根強いらしい(上記の例では、数値的には、誤差の範囲で★★★と一致する)。(☆)は暦学ではおなじみの値であり(一昔前の回帰年の近似値)、1年の長さをそう定義して悪いわけではないが、回帰年の長さは「1世紀につき0.5秒くらい」のオーダーでどんどん短くなる。精密に現在の(2000.0年における)回帰年の長さを使いたいなら、
1年 = 約31556925秒 = 365.24219日(☆☆)
であり、(☆)では既に1秒ずれている。他方、いくら精密に(☆☆)を使っても、どうせまたすぐ変動してしまうので、あまり意味がない。むしろ割り切って1年=365.25日(★★)に固定した方が、計算上、便利だろう(コンピューターの浮動小数点数として、誤差が出ない)。

とはいえ、国際的な慣習にケチをつけても仕方ない。半減期の「1年」は、しばしば「365日でも365.25日でもなく、グレゴリオ年でもなく、現在の回帰年でもない」という紛らわしい事実を受け入れるしかあるまい。「1日」といえば、特に断らない限り86400 SI秒であり、誤解の余地は少ないが、「1年」の長さは分野によって・人によって定義が違う場合がある。「1年」という言葉は、あまりにも日常的で、意味が分かり切っているように感じられるが、精密科学の文脈では、そこに落とし穴がある!

ボーナスクイズ もし仮に「☆☆の31556925秒が1年の正確な長さであり、かつ1日の長さが正確に86400秒で、どちらも変動しない」とした場合、1年の日数は有限小数になる。最良近似分数の列は次の通り。

365  1461  10592  12053  46751
---, ----, -----, -----, -----
  1     4     29     33    128

このような仮定上の世界においては「128年につき31回うるう年を入れる」こと(言い換えれば「4年に1度のうるう年を、128年につき1回だけ例外的にやめる」こと)によって、カレンダーと季節のずれを長期的にゼロにできる。同様のことを(☆)でやろうとすると、どうなるか?

2020-07-01 地球の自転が一時的に速くなっている 1日の長さ24時間を切る

精密に測ると地球の自転は日々変動しているが、長期的にはだんだん遅くなっている。「自転による1日は、定義上の24時間=86400秒より1ミリ秒(1000分の1秒)くらい長い」というのが、これまでの大ざっぱな感覚だった。だから1000日くらい(数年)のオーダーで地球は時計より1秒遅れ、時計合わせのため「うるう秒」が挿入される…と。

ところが実測で、2020年6月5日ごろから、86400秒かからないで自転が終わる状態が続いている。「自転と時計の差」(UT1−UTC)が普通ならだんだん減るはずなのに(自転より時計の方が進みが速いので、マイナスが大きくなる)、逆に少しずつ増えている。この傾向は9月頃まで続き、その後も時々自転が速めになると予想されている([1])。このこと自体は、決して異常ではない。2004年ごろにも同様のことが起こり、その影響で7年間くらい一度もうるう秒がないことがあった([2])。24時間を切ったと言っても違いは、せいぜい1ミリ秒。地球の自転と無関係に1日は通常86400秒に固定されているので、日常生活には影響しない。大昔の地球はもっと速く回っていて、1日が23時間だったときもあるというのだから、1ミリ秒ずれたくらいで大騒ぎすることもないだろう。

しかし年オーダーの短期的な話として、「うるう秒が入らない最長期間」の新記録になる可能性がある。「うるう秒」制度が始まって以降、これまでの最高記録は「7年間うるう秒なし」。協定世界時(UTC)1998年12月31日の末尾(日本時間1999年1月1日8時59分59秒の後ろ)にうるう秒が挿入されてから、UTC2005年の末尾に再びうるう秒が入るまで7年あいた。前回のうるう秒はUTC2016年末。2020年末のうるう秒の有無が公式発表されるのは数日後だが、UT1−UTCマイナス0.2秒台で「うるう秒」という先例は、21世紀に入ってから1度もない。マイナス0.5秒になりそうな辺りで挿入してプラス0.5秒側に振るのが、常識的に無難な線だし、最近の運用は実際そんな感じ。

前回の「7年間なし」記録のときは、うるう秒を入れてから4年で、またマイナス0.3秒くらいまで地球が遅れた。一方、2020年末にうるう秒がない場合、結果は「ずれマイナス0.2秒くらい」=前回の同じ条件より、ずれのペースが小さめ。この調子だと「8年間うるう秒なし」、場合によっては「10年間なし」といった新記録もあり得る。

地球の自転は、大ざっぱに10~20年の周期で速くなったり遅くなったりしているらしい。グラフ [3] を見ての漠然とした印象だが、現在入りつつある「谷」(1日の長さが短くなる)は前回よりちょっと深いかも…。地球の自転は気象の影響も受けているので、気象の乱れも関係しているのかもしれない。地球の自転が速めになるのは、UTCがずれにくいという点では良いこと。これまでの遅れの「貯金」がたっぷりあるので、「負のうるう秒」などという事態にはならない。長期的には、どっちにしても誤差の範囲内の揺らぎだろう。

[1] https://datacenter.iers.org/data/latestVersion/6_BULLETIN_A_V2013_016.txt

[2] https://en.wikipedia.org/wiki/File:Deviation_of_day_length_from_SI_day.svg

[3] https://en.wikipedia.org/wiki/File:Leapsecond.ut1-utc.svg

2020-08-08 NASAのサイトだって…

3年前の話。

大量の情報があるネット。一定割合で不正確な記述があるのは当たり前。でも規範的と考えられるサイトの間違いは、ある種のインパクトを持つ。素朴な意味では「間違い=良くない」。実際には「本当に間違ってるのだろうか。自分の側が何か勘違いしている?」という疑念が生じ、不正確な情報のおかげで、かえって勉強になることも(隅々まで検証することで理解が深まる)。

2017年の「「春夏秋冬」は「夏秋冬春」より長い」という考察は、NASAが公開している古い事典に「回帰年は、毎年0.005305秒ずつ増大している」と記されていたのが、一つのきっかけだった。増大ではなく減少のはずだが、さすがにNASAに言われると「もしかして、自分はこれまでずっと逆に覚えてた?」と不安になる。もはや参考文献を読み比べても、安心できない。自力で解析計算を行い「どの本が何と言おうと、これはこうなる」と確信したい。少なくとも、その方向に進みたかった…。

「人の間違いのあら探し」みたいな陰湿なことではない。NASAのサイトには「これは古い事典のアーカイブで、更新されていないので、正確性は保証できない」ときっちり断り書きがあり、記述に間違いがあってもおかしくなかった(うっかり符号を逆にしてしまうのは、誰にでもあることだろう)。きっかけは何であれ、春・夏・秋・冬の記事では「苦労してケプラー方程式を逆算しなくても、素朴な計算が成立」というところが面白かった。地球が軌道上を動いて「春分点」を通過すると考えずに、逆に「ここで春分になる場所」が軌道上を動いている…と考えることがブレークスルーとなった。


メールアドレス(画像): [ http://www.faireal.net/image/2005/addr.png ]