1 ポイント 投稿者 GN⁺ 2025-05-22 | 1件のコメント | WhatsAppで共有
  • インターネットで有名になった 絵文字数学問題 には、ひっかけ要素のためにさまざまな答えが生じるという特徴がある
  • 数学コミュニティ では、こうした問題の代わりに本当に難しい問題を作ろうとしていた
  • この投稿では ピタゴラス数 を見つける方法と、関連する 手法(直線を引くこと) を説明する
  • 難度の高い絵文字問題では、楕円曲線と有理数解の解析 が核心となる
  • 数学的ツールと Mathematica を通じて解を見つけていく戦略を強調する

絵文字数学問題の背景と登場

インターネットでは、絵文字(あるいは果物の絵など) で表現された数学問題が広まった。こうした問題は、紛らわしい要素(例: バナナの本数の微妙な違い) のため、1つの問題に対して複数の答えが出て論争やバイラル効果を生んだ。実際、数学者や数学コミュニティではこの種の問題にうんざりしており、2017年には reddit の r/math に「本当に難しい絵の数学問題を作ってみよう」というスレッドが登場した。そこで発表された問題は、従来と違って 整数解 を見つけるのが比較的簡単なレベルだったが、Sridhar Ramesh という人物が少し変形して、途方もなく難しい問題にした。変形後の問題は、最小の解 ですら80桁以上の数字を持ち、楕円曲線 に関する高度な知識が必要だと評価されるようになった。

ピタゴラス数を求めるウォームアップ例

まず簡単な問題として、ピタゴラス数 を網羅的に得る方法を扱う。x² + y² = z² を満たす 整数解(ディオファントス方程式) を直接探す代わりに、x₁² + y₁² = 1 における 有理数解(分数形の解) を探す形で考える。

  • このとき x₁ = x/z, y₁ = y/z と置き換えると、問題は 単位円上に存在するすべての有理数点 を見つけることに変わる
  • 原点ではなく (0,1) などを出発点に取り、有理数の傾きをもつ直線を引くと考える
  • その直線と円が交わる2つ目の交点は、常に 有理数点 になる
  • これは Vieta の公式などから確かめられ、傾きを固定することであらゆる有理数点に到達できる
  • これをまとめると、ピタゴラス数は (x, y, z) = (2mn, n²–m², n²+m²) という構造で特徴づけられる(正の整数 m, n に対して成り立つ)
  • 核心は「直線を引くと新しい点が現れる」という原理にある

元の絵文字問題: 高難度方程式を楕円曲線に変換する

問題の核心となる式は x/(y+z) + y/(x+z) + z/(x+y) = 4 から始まる。これを整理すると x³+y³+z³ = 3(x²(y+z)+y²(x+z)+z²(x+y)) + 8xyz という形に変換できる。

  • x₁ = x/z, y₁ = y/z と置き換え、全体を z³ で割って 有理数解 の解析として進める
  • 代入後の式は x₁³ + y₁³ + 1 = 3(x₁²(y₁+1)+y₁²(x₁+1)+x₁+y₁) + 8x₁y₁ となる
  • 可視化すると、この式のグラフは対称的で、座標軸を適切に回転・再置換(x₂, y₂)することでより単純な形に整理できる
  • 最終的に、楕円曲線の形をした次の方程式が導かれる: 1 - 6x₂ - 11x₂² - 4x₂³ - y₂² + 12x₂y₂² = 0

楕円曲線で有理数点を生成する原理

楕円曲線上の2つの有理数点 (P, Q) を選び、その2点を結ぶ 直線 を引いて、その直線と曲線の3つ目の交点 R を求める手順を説明する。

  • 3点 (P, Q, R) はすべて 有理数座標 を持つことになる
  • Vieta の公式、直線の傾き、および代数的変形を用いることで、一貫した式から3つ目の交点を計算できる
  • 同じ点 (P=Q) で引く直線は 接線 になり、この場合も同じ原理が適用される
  • 「2つの有理数点を結ぶと、別の有理数点が生まれる」という点が重要である

有理数点の「増殖」の限界と無限位数点の発見

楕円曲線上で簡単に見つかる 自明な有理数点((0,1), (-1,0), (0,-1) など)は、それぞれ解として意味のない結果につながる。

  • これらの点だけでは、これ以上新しい有理数点を生成できない トーション点(有限位数の点) ばかりを繰り返す
  • 未知の 無限位数(無限個の解を与える)点が必要になる
  • Mathematica などの計算機計算を使って、新しい有理数点が発見され、たとえば (-2, 1/5) の形をしている(この点を A と名付ける)
  • この点を利用して、接線や別の点との直線を適用すると、次々に新しく複雑な有理数解を生み出せる

実際に正の解を持つための条件と反復計算

この問題の解は、x, y, z がすべて でなければ意味がない。式の展開上、z > 0 を仮定すると x₁ > 0, y₁ > 0 が必要であり、置換後の座標 (x₂, y₂) については x₂ > |y₂| を満たさなければならない。

  • この条件を満たす領域(グラフの特定部分)を「目標領域」とし、直線のトリックを繰り返してその領域の有理数解に到達する
  • 計算過程では、実際の有理数点の x 座標と y 座標を、それぞれ複雑な代数式(L, T と Y 関数)を用いて求める
  • このようにして接線や直線の傾きの計算を繰り返し適用すると、数十桁に及ぶ非常に大きな解に到達する

結論

与えられた 絵文字数学問題 は単純に見えるが、実際には 楕円曲線の性質と有理数点生成の原理 を積極的に活用する必要があり、場合によっては解の数値が幾何級数的に大きくなる。

  • 単純な構造ベースの「直線を引いて新しい点を得る」という原理は、楕円曲線でも変形されて適用される
  • 実際の整数解や正の解を見つける過程はかなり複雑で、計算機代数計算が不可欠である
  • 投稿の後編では、この過程の締めくくり、さらに深い数学的背景、および解の詳細が続く予定である

1件のコメント

 
GN⁺ 2025-05-22
Hacker Newsの意見
  • 本当に素晴らしいQuora回答の紹介リンクを共有

    • そのQuora回答はAlon Amitが書いたもので、元記事にもAlon Amitへの言及の引用が含まれているとのこと

    • こういうのこそ、まさにQuoraの真の絶頂期という感じが伝わる

  • 以前、子どもたちに数学を教えていたとき、公式や数式を動物、雲、星のようなかわいく親しみやすい言葉に置き換えて使っていた経験を共有。子どもたちは最初は面倒がっていたが、むしろそのおかげで抽象的な概念に興味を持つきっかけになり、後にほかの友だちに教えるときにも同じやり方を使っていたというフィードバックもあった。xが必ずしも特別である必要はないことを強調し、「xの代わりに太陽や『猫の数の合計』のような、どんな名前でも使える」というメッセージを強調

    • 「猫の数の合計」のような名前や、数学文化全体に根付いたミニマリズム傾向について言及。数式の中では変数名が非常に短かったり抽象化されていたりすることが多く、実際に式を解釈するときに「ここで重要な役割を果たすこの記号は、いったい何なんだ? 誰が『φ』なんて書いたんだ……」という難しさを生む。プログラマーは変数名を付けるのが苦手だという冗談以上に、数学者のほうがひどいという冗談を強調。何千年にもわたって人間の言語とラベルを使えるのに、わざわざrhoのような暗号めいた記号を使うのは不要だという意見。少なくとも数学論文から派生したプログラムでは、変数名は意味を直感的に伝える名称を使う必要性を強調
  • OpenAIのインターフェースを使ってChatGPTに問題画像をアップロードしてみた感想。最初は、モデルが問題をすでに知っていて正解を出すか、適当にでっち上げるか、あるいはそもそも解くのを拒否するだろうと予想していた。しかし実際には、正解であるかのように自信満々の推測を出したあと、自分で計算して間違いに気づき、同じ推測を繰り返す様子が見られた。対称性すら把握できず、非構造的なエージェントのように振る舞い、最終的には答えが存在しないという結論を確信して強調した。この結果は予想外で、今後ほかのパズルでも同じ程度にできなければ、自分の見方を更新するつもりとのこと

    • Geminiにも同じ質問を試した結果を共有。また、ChatGPT o3も使ってみて、考えるのに11.5分かかった経験や関連作業のリンクも共有

    • 人間の頭で理解できる「合理的」な答えがそもそも存在しないという点で、むしろ印象的。Wolfram Alphaと接続されたChatGPTのバージョンもあるはずだが、そちらは試していないのか気になるという話

  • Sridhar Rameshについて、数学博士であると同時に、インターネット・ミーム由来の冗談(「shitposting」)にも長けている珍しい人材だと思うと強調

  • この種のパズルが大好きなので、「Dantzig Sniping」という名前を付けて友人たちに紹介していた経験があり、自作問題と関連文脈のリンクを共有

    • 最初はGdańsk(Danzig)の地名を連想して、何がスナイピングされたのか気になっていたという反応を共有

    • こういう性質を持つ問題はどうやって見つけるのか気になるという質問

  • 2025年なのに、なぜ作者は変数名に果物の絵文字を実際には使わないのか、ユーモアを交えて疑問を呈する

    • 複雑なCコードを解析するとき、変数名を絵文字に置き換えてみると、どの変数がどこで使われているかが一目で把握でき、コード構造の理解に役立った経験があり、例の画像も共有。ただし残念ながら、RustやJSのような現代的な言語はXID_Start/XID_Continue標準に従っており、絵文字識別子の使用を禁じている点を問題視

    • Geminiが果物の絵文字の変数名を使って、brute force方式で問題を解いたC#コード例のリンクを共有

    • 今年は2025年だが、その言語が作られた年は2025年ではない、という現実的な補足も追加

  • 「4」の代わりに別の定数を入れると、はるかにとてつもなく大きな最小解が現れる可能性があり、関連する面白いディオファントス方程式(整数解方程式)の例へのリンクを共有

    • 1億2000万桁のような奇妙だがすごい巨大数をリアルタイムで呼び出せる機能が、印象的なほど良いと強調
  • この問題が最初に登場したとき、整数論のセミナーでみんなで大笑いした記憶を共有

  • 数論や奇妙なグラフの深い探究は興味深いが、もともとのリンゴ/バナナのパズルで、正確に何が混乱や罠のポイントだったのか気になる。混同しやすい要素や議論を呼ぶ点があったのか、それとも簡単すぎるからみんなが得意げに飛びついているだけなのか気になる。自分では10、4、2という答えを出したが、むしろ自分のほうが混乱していたのではないかという意見

    • 実際の「トリック」は、最後の束のバナナは3本で、ほかの束は4本であり、ココナッツも最後の式にしか1個だけ存在しないこと。実際に「1 + 10 + 3」のように誤解してしまうこともあり得る、という説明
  • 特定の問題リンクURLのクエリパラメータである「srsltid」は不要な値だという豆知識を共有