予想
中学数学に大苦戦! - ひらのの日記
の続きです。
前の記事の問題 1 で不必要に時間をかけすぎたせいか、ただ 1 問解いただけではなんだか報われない気がするので、何か適当な結果を捏ち上げるために (笑) こんな予想を立ててみました。
予想
下図において、 を の二等辺三角形とし、 とする。
このとき、 共に整数の組は、自明なもの *1 を除くと、以下の 16 通りである。
- x = 50, y = 20, z = 60
- x = 65, y = 25, z = 85
- x = 60, y = 30, z = 80
- x = 50, y = 40, z = 60
- x = 20, y = 50, z = 10
- x = 40, y = 50, z = 30
- x = 60, y = 50, z = 80
- x = 70, y = 50, z = 110
- x = 30, y = 60, z = 10
- x = 50, y = 60, z = 30
- x = 65, y = 60, z = 85
- x = 70, y = 60, z = 110
- x = 25, y = 65, z = 5
- x = 60, y = 65, z = 40
- x = 50, y = 70, z = 10
- x = 60, y = 70, z = 20
x と y をひっくり返しただけ、というのもあるので、この条件下で、本質的に異なる非自明な (x, y, z) の組はたった 8 組だけ、 という予想になります。
もしこれが正しいとすると、、中学で出てきた図形の角度を求める問題って、かなり特殊な状況下での出来事だったんですね。
中学の図形問題を作るのって、大変だったんだなぁ。。
メモ
この「予想」はどうやって立てたかというと、アイデアは前の記事と全く同じで、あとは C++ でコードを書いて、それを実行して出しました。
具体的には、以下の通りです *2。
アルゴリズム
- を x、y で表す。
- の虚数部分は z の関数になるが、それを f(z) と書く。
- z = 1, 2, ... , 179 において、f(z) = 0 となる z を探す。
- 1 〜 3 の作業を、すべての x, y = 1, 2, ... , 79 について行う。
この 8 通りについては、前の記事と同じように証明すれば良いと思うんだけど (えげつなさそうなのも幾つかあるけど)、問題は、
- 数値計算で f(z) ≠ 0 と結論付けてしまったものが、ホントに f(z) ≠ 0 なのか?
というところだと思います。
C++ のコードのほうでは、「f(z) の絶対値が DBL_EPSILON より小さいかどうか」でアルゴリズムの 3 の部分の判定を行っているのですが、
- 数値計算の結果、絶対値が DBL_EPSILON より大きくなってしまったけど
- 実際は 0 に等しい
ということもありうるわけですからね *3。
その辺りのチェックが難しそうです。
もし何か進展があったり、間違いを見つけたりしたら、更新していくことにします。