「私は、アンドリューとリチャード・ガイによる以前の作品のスタイルでキューブ表現タスクを試しました。 数値結果は驚くべきものでした...」(MathOverflowについてのコメント )これが、数年前に引退した数学者アラン・マクラウドがこの方程式に出会った方法です。 そしてそれは本当にとても興味深いです。 正直なところ、これは私が今まで見た中で最高のディオファントス方程式の一つですが、私はそれらの多くを見たことはありません。
それは、誰かの冷酷な心( スリダール 、それはあなただった?)によって発明されたオタクのネットにひったくる疑似画像として広まり始めたときに見つけた。 私はすぐにそれが何であるかを理解しませんでした。 写真は次のようになりました。

「95%の人がこの謎を解かないでしょう。 正の整数値を見つけることができますか?」
おそらく、似たようなミーム写真を見たことがあるでしょう。 これは常に純粋なゴミです。クリックの餌:「MITの卒業生の95%は解決しません!」 「彼女」は、ある種のばかげた、または不十分に定式化されたタスク、または脳のための些細なトレーニングです。
しかし、この写真は完全に異なっています。 このミームは、スマートまたは悪のジョークです。 約99.999995%の人々は、数論に関与していない主要な大学の数学者のかなりの部分を含めて、それを解決するわずかな機会を持ちません。 はい、解決可能ですが、本当に複雑です。 (ちなみに、スリダールはそれを発明しなかった、というか、彼は完全に発明しなかった。 このコメントの話を参照)。
他に何も役に立たない場合は、コンピューターにそれを解決させることができると思うかもしれません。 この一見単純な方程式の解を見つけるためのコンピュータープログラムを書くのは非常に簡単です。 もちろん、コンピューターは遅かれ早かれそれらを見つけます(存在する場合)。 大きな間違い 。 ここでは、単純なコンピューターのブルートフォースメソッドは役に立ちません。
誰もが楕円曲線に必要なすべてをすでに知っていることを受け入れないと、完全なソリューションを記事に組み込むことが可能かどうかはわかりません。 ここでは、簡単な概要のみを説明します。 主な参考資料は、2014年にAnnales Mathematicae et Informaticaeで公開された、BremnerとMacLeodの「 異常な立方体表現の問題 」という題名の比較的最近の素晴らしい作品です。
それでは始めましょう。
方程式の正の整数解を探しています
(変数の表記を作業で使用されている表記に置き換えました)。
方程式を調べるときに最初に行うことは、正しいコンテキストに置くことです。 質問をしなければなりません:この方程式は何ですか? したがって、整数解を見つけるように求められます。つまり、それは数論の問題です。 現在の定式化では、方程式は有理関数(他の多項式で割り切れる多項式)を使用していますが、分母の公倍数で乗算して方程式をクリーンアップし、多項式のみを取得する、つまりディオファントス方程式の形式にすることができることは明らかです。 「陽性」の要件はかなり珍しいものであり、これから見るように、すべてを複雑にします。
では、ここにはいくつの変数がありますか? 質問はばかげているようです:明らかに、3、すなわち 、 そして 。 しかし、時間をかけてください。 経験豊富な数論研究者は、方程式が同質であることをすぐに気付くでしょう。 これは、 は方程式の解の1つであり、解は 。 理由はわかりますか? 各変数に定数( -これは単なる例です)、各部分の定数が削減されるため、何も変更しません。
これは、方程式が3次元になりすますことを意味します。 実際、2次元です。 幾何学的表現では、表面があります(一般に、3つの変数を持つ1つの方程式が2次元の表面を定義します。一般に、 との方程式 変数を設定する 次元多様体、ここで ) しかし、この表面は実際には、振動して原点を通過する線によって制限されています。 結果のサーフェスは、ユニットプレーンをどのように切断するかを理解することで理解できます。 これは射影曲線です。
この情報を計算する最も簡単な方法は次のとおりです。 、およびその対象 。 最初のケースでは、2つの変数しか残っていません。 そして 、そして2番目では単純に除算できます 解決策を得る 。 したがって、 合理的な解決策を単純に探すことができます そして ケース用 、それらに共通因子を掛けて、 、 そして 。 本質的に、同次方程式の整数解は、不均質バージョンの有理解に対応し、これは1次元分少なくなります。
続き:方程式の程度は? 方程式の次数は、単項式の方程式に現れるすべての最大次数です。「単項式」は、「次数」が複数の単項式の数であるいくつかの変数の積です。 例えば 度の単項式になります
ディオファントス方程式の振る舞いは、その次数に強く依存します。 一般的に:
- 学位あり すべてがシンプルです。
- 程度 完全に分析され、かなり基本的な方法で解決できます。
- 程度 -これは深層理論の広大な海であり、100万の未解決の問題です。
- 程度 以上...非常に複雑です。
学位があります 。 なんで? 単に除算器で乗算します。
ブラケットを開かなくても、次の程度であることがわかります。 :一度に3つ以上の変数を乗算することはありません。 次のような部品を入手します 、 そして 、しかし、3つの要因以上のものはありません。 変換を実行すると、方程式は次の形式になります
除数の一部が等しい場合、除数による乗算は不可能であると主張するかもしれません 。 これは事実です-実際、新しい方程式には元の方程式に対応しないいくつかの解があります。 しかし、実際には良いことです。 多項式を使用したバージョンでは、オリジナルにいくつかの「パッチ」が追加され、作業が簡単になります。 元の除数が具体的な決定ごとに消えないかどうかを確認するだけです。
実際、多項式を含む方程式は簡単に解くことができます。たとえば、 、 、 。 これは良いことです。合理的な解決策があります(合理的なポイント)。 これは、3次方程式(次数= 3)が実際に楕円曲線であることを意味します。
方程式が楕円曲線であることがわかったら、a)満足し、b)絶望します。まだ学ぶべきことがたくさんあります。 この方程式は、非常に複雑な解を見つけるために、楕円曲線の強力な理論をどのように適用できるかの良い例です。
楕円曲線が通常作成される最初のことは、それをワイエルシュトラス形にすることです。 これは次のような方程式です
そして時々どのように
(これは拡張されたWeierstrassフォームと呼ばれます。オプションですが、時にはより便利です)。
通常、楕円曲線はこの形式に縮小できます(特性が小さいフィールドで作業している場合を除きますが、ここではそれらについて心配する必要はありません)。 適切な変換を見つける方法を説明するには長すぎるので、これは絶対に機械的なプロセスであることを知ってください(少なくとも1つの合理的なポイントがあることが重要です)。 あなたのためにすべてを行う計算代数のさまざまなパッケージがあります。
しかし、あなたが知らなくても。 変換を見つける方法は、チェックするのが非常に簡単です。少なくとも純粋に機械的に行われます。 私たちの場合に必要な変換は、恐ろしく見える式によって与えられます
どこから来たブードゥー教の魔法のように見えることは知っていますが、信じられませんが、そうではありません。 これらの変換を、単調ではなく、単純な代数計算を使用して取得したので、
この式は完全に異なって見えますが、実際には元の信頼できるモデルです。 グラフィカルに、それはこのように見えます-2つの実部を持つ典型的な楕円曲線:

右側の「フィッシュテール」は「無限に、そしてその先まで」成長します。 左側の楕円形は閉じており、非常に興味深いものです。
解決策がある この方程式の、必要な値を復元できます 、 、 方程式を使用して
(そのトリプレットを覚えておいてください 射影する必要があります-これらの方程式を使用して取得する値に関係なく、常に定数を掛けることができます)。
次の2つのディスプレイは、 、 、 で 、 また、逆の場合、これら2つの方程式は、数論の観点から「同じ」であることを示しています。一方の合理的な解は、他方の合理的な解を与えます。 技術的には、これは双有理同値と呼ばれ、代数幾何学の基本概念です。 すでに気づいたように、正しく表示されない例外ポイントが存在する場合があります。 これらは次の場合です 、 または 等しい 。 これは、双合理的等価の場合の通常の報復であり、不安を引き起こすべきではありません。
例を見てみましょう。
楕円曲線上に適切な有理点があります(2):
、 。 見つけるのはそれほど簡単ではないかもしれませんが、 確認するのは非常に簡単です。これらの値を挿入するだけで、2つの半分が同じであることがわかります(この点をランダムに選択しませんでしたが、これまでは重要ではありません)。 単純にどの値を確認することができます 、 、 彼女は私たちを与えます。 取得します 、 、 、そして共通因子を掛けることができるので、結果は次のように変換されます 、 、 。
そして確かに
簡単に見ることができます。 これは、整数の元の方程式に対する単純な解決策ですが、残念ながら、 正の整数ではありません。 この決定は、手作業で行うのは容易ではありませんが、ここで説明した巨像をすべて使用せずに、少しの忍耐で行うことも簡単です。 最も難しいことは、肯定的な決定です。
ここで、たとえば、楕円曲線上の有理点を受け取った場合、 曲線(2)では、Quoraの前の記事で説明したコードとタンジェントの手法を使用して他の生成を開始できます。

まず、ポイントを追加します 自分自身に、ポイントで曲線の接線を見つける そして、彼女が再び曲線に出会う場所を決定します。 結果は少し威圧的です:
また、この新しいポイントは値に対応します 、 、 元の方程式の解である
このソリューションは、手動で見つけるのは簡単ではありませんが、それでもコンピューターの能力の範囲内です。 しかし、それはまだポジティブではありません。
失敗を恐れずに、計算を続けます 直線を結ぶことで決定できます そして 曲線との3番目の交点を見つけます。 そして再び計算します 、 、 、そして再び結果はポジティブではありません。 同じことが起こります 、そして など...つまずくまで 。
9P=(-66202368404229585264842409883878874707453676645038225/13514400292716288512070907945002943352692578000406921,
58800835157308083307376751727347181330085672850296730351871748713307988700611210/1571068668597978434556364707291896268838086945430031322196754390420280407346469)
見つけるのは簡単ではありませんが、機械の助けを借りれば、単純な幾何学的手順を9回繰り返すだけで済みます。 一致する値 、 、 すごい:
a=154476802108746166441951315019919837485664325669565431700026634898253202035277999,
b=36875131794129999827197811565225474825492979968971970996283137471637224634055579,
c=4373612677928697257861252602371390152816537558161613618621437993378423467772036
これらは80ビットの数値です! 単純なブルートフォースでは、コンピューターで80ビットの数字を見つけることはできませんでした。 信じられないように見えますが、これらの膨大な数を単純な表現に貼り付けます 私たちは本当に正確に取得します 。
実際、これらは問題の最小の解決策です。 私たちが自分自身にポイントを追加し続ける場合 、その後、仕切りは単純に成長します。 これを証明するのは簡単ではありません。なぜなら、常に減少する可能性があるからです。しかし、楕円曲線の高さ理論により、これらの天文学的数値が実際に方程式の最も単純な解であることを示すことができます。

理論に戻ります。 有理数上の楕円曲線にはランクがあります。これは、和音法および接線法に使用し、遅かれ早かれ曲線上のすべての有理点を確実に見つけるために必要な点の数です。 楕円曲線(2)のランクは1です。これは、無数の有理点があることを意味しますが、それらはすべて1つだけであり、これは私たちの点にすぎません。 。 ランクを計算し、そのようなジェネレーターを見つけるアルゴリズムは簡単ではありませんが、SageMath(現在はCoCalcと呼ばれています)はほんの数行のコードで1秒未満でそれらを実行します。 私のコードはここにあります 。 ソリューション全体を最初から再現しますが、もちろん、組み込みのSageメソッドを使用して楕円曲線を操作します。
私たちの場合、ポイント 点のように、曲線の楕円部分にあります 正の整数の場合 。 それらは楕円に沿って「円」になり、徐々にその上に均等に分布します。 これは非常に成功しています。なぜなら、この楕円形のごく一部が、 、 、 :これは、BremnerとMacLeodから取られた以下のグラフの太字部分です。

ポイント 、 、など、選択した部分に横たわらないでくださいが、 -うそ、それがまさに80ビットの正解を獲得した方法です。
BremnerとMacLeodは、交換するとどうなるかを研究しました 他の何か。 ソリューションが大きくなると思われる場合は、結果としてソリューションがどうなるかを確認するまで待ちます 。 80ビットの代わりに、398,605,460ビットが必要です。 はい、これはソリューションの桁数のみです。 結果を 、ソリューションには数兆ビットが含まれます。 兆。 この無邪気な表情の方程式の場合:
小さな係数のディオファントス方程式がどのように巨大な解を得ることができるかという印象的な例。 これは、a敬の念だけでなく、底なしの感覚を刺激します。 10番目のヒルベルト問題の負の解は、係数が増加する解の成長が計算不可能な関数であることを意味します 。 計算可能であれば、ディオファントス方程式を解くための単純なアルゴリズムがあり、それは存在しません(単純でも複雑でもありません)。 コンプライアンス 80ビット数 数億の数字と 数兆ビットは、この巨大な計算されていない関数の最初の小さなステップの少しのアイデアを与えてくれます。 方程式の数値を少し変更すると、決定は私たちの悲惨な小さな宇宙に収まるすべてのものを簡単に上回ります。
これは驚くほどトリッキーな小さな方程式です。
この興味深い記事へのリンクを送ってくれたMrShoorに感謝します。