ちょっと間が空いてしまいましたが、
上図のような半径をrとする半円があり、
∠αの弦をa、∠βの弦をb、直径をc、
mα+nα=180˚, m≧n>0, m, n∈Nを満たす。
各(m, n)において、(a, b, c)が既約な正の
整数となるようなものを求めよ。
という自作問題をプログラミングしていまして、
m | n | a | b | c |
1 | 1 | 3 | 4 | 5 |
1 | 1 | 4 | 3 | 5 |
1 | 1 | 5 | 12 | 13 |
1 | 1 | 12 | 5 | 13 |
1 | 1 | 8 | 15 | 17 |
1 | 1 | 15 | 8 | 17 |
1 | 1 | 7 | 24 | 25 |
1 | 1 | 24 | 7 | 25 |
1 | 1 | 20 | 21 | 29 |
1 | 1 | 21 | 20 | 29 |
2 | 1 | 2 | 7 | 8 |
2 | 1 | 3 | 7 | 9 |
2 | 1 | 6 | 1 | 9 |
2 | 1 | 3 | 17 | 18 |
2 | 1 | 4 | 31 | 32 |
2 | 1 | 12 | 23 | 32 |
2 | 1 | 20 | 7 | 32 |
2 | 1 | 5 | 23 | 25 |
2 | 1 | 10 | 17 | 25 |
2 | 1 | 15 | 7 | 25 |
3 | 1 | 845 | 828 | 2197 |
3 | 1 | 2312 | 495 | 4913 |
3 | 1 | 4375 | 10296 | 15625 |
3 | 1 | 16428 | 27755 | 50653 |
3 | 1 | 15129 | 54280 | 68921 |
3 | 1 | 40931 | 194220 | 226981 |
3 | 1 | 67600 | 201663 | 274625 |
3 | 1 | 93925 | 550116 | 614125 |
3 | 1 | 260100 | 157157 | 614125 |
3 | 1 | 308919 | 146960 | 704969 |
4 | 1 | 8 | 17 | 32 |
4 | 1 | 27 | 17 | 81 |
4 | 1 | 27 | 127 | 162 |
4 | 1 | 64 | 449 | 512 |
4 | 1 | 192 | 17 | 512 |
4 | 1 | 125 | 433 | 625 |
4 | 1 | 125 | 1151 | 1250 |
4 | 1 | 375 | 431 | 1250 |
4 | 1 | 216 | 2449 | 2592 |
4 | 1 | 343 | 2017 | 2401 |
5 | 1 | 2734375 | 1476984 | 9765625 |
5 | 1 | 25431849 | 51872200 | 115856201 |
5 | 1 | 152304251 | 520632300 | 844596301 |
5 | 1 | 285610000 | 372960063 | 1160290625 |
5 | 1 | 678608125 | 3192445284 | 4437053125 |
5 | 1 | 2081208020 | 5707904499 | 10510100501 |
5 | 1 | 2445710415 | 14490678832 | 18424351793 |
5 | 1 | 7514860625 | 53348005584 | 64097340625 |
5 | 1 | 10609215000 | 43190896463 | 64097340625 |
5 | 1 | 46578742132 | 6863126325 | 154963892093 |
6 | 1 | 32 | 7 | 128 |
6 | 1 | 243 | 782 | 1458 |
6 | 1 | 1024 | 5983 | 8192 |
6 | 1 | 3125 | 5543 | 15625 |
6 | 1 | 3125 | 25774 | 31250 |
6 | 1 | 7776 | 81863 | 93312 |
6 | 1 | 16807 | 76751 | 117649 |
6 | 1 | 16807 | 213982 | 235298 |
6 | 1 | 50421 | 63902 | 235298 |
6 | 1 | 32768 | 487807 | 524288 |
7 | 1 | 42750938169 | 4205436520 | 194754273881 |
7 | 1 | 566724117971 | 933420304380 | 3142742836021 |
7 | 1 | 4902943703125 | 15256342319316 | 32057708828125 |
7 | 1 | 21230403012020 | 18712692999099 | 107213535210701 |
7 | 1 | 31229276289135 | 140277922759408 | 235260548044817 |
7 | 1 | 157999944640625 | 916846383342096 | 1347646586640625 |
7 | 1 | 223058745375000 | 533250316479023 | 1347646586640625 |
7 | 1 | 668074738214539 | 4716260663909940 | 6364290927201661 |
7 | 1 | 1636648392655612 | 6237995487261915 | 11514990476898413 |
7 | 1 | 2446656141033741 | 20243147384053660 | 25748143198497941 |
8 | 1 | 2187 | 3007 | 13122 |
8 | 1 | 16384 | 70529 | 131072 |
8 | 1 | 78125 | 543551 | 781250 |
8 | 1 | 279936 | 2638369 | 3359232 |
8 | 1 | 823543 | 2371777 | 5764801 |
8 | 1 | 823543 | 9694847 | 11529602 |
8 | 1 | 2097152 | 29441537 | 33554432 |
8 | 1 | 6291456 | 2074529 | 33554432 |
8 | 1 | 4782969 | 27069761 | 43046721 |
8 | 1 | 4782969 | 77720959 | 86093442 |
9 | 1 | 35423768255078125 | 43493220003156084 | 231616946283203125 |
9 | 1 | 398766628935964815 | 1093500518290131952 | 3004041937984268273 |
9 | 1 | 3321948836069140625 | 13910996789480983824 | 28334269484119140625 |
9 | 1 | 4689810121509375000 | 2102004302995808783 | 28334269484119140625 |
9 | 1 | 21886796498646512179 | 121874910240833598420 | 208500535066053616021 |
9 | 1 | 63516687470571646108 | 126614861389951203555 | 446885265417950510117 |
9 | 1 | 119497132584228944181 | 823817094582142462780 | 1257565061957837936381 |
9 | 1 | 608996735987235225632 | 2115333500682367703295 | 4891005035897482905857 |
9 | 1 | 559364406039571484375 | 4572130042340783039304 | 6444850765238541015625 |
9 | 1 | 2303004088924671288025 | 21684566268331317474552 | 28833611193336884526073 |
3 | 2 | 2 | 9 | 16 |
3 | 2 | 21 | 10 | 54 |
3 | 2 | 35 | 44 | 125 |
3 | 2 | 7 | 235 | 343 |
3 | 2 | 161 | 18 | 343 |
3 | 2 | 161 | 286 | 686 |
3 | 2 | 328 | 299 | 1024 |
3 | 2 | 153 | 329 | 729 |
3 | 2 | 63 | 962 | 1458 |
3 | 2 | 890 | 187 | 2000 |
5 | 2 | 27 | 118 | 243 |
5 | 2 | 448 | 475 | 2048 |
5 | 2 | 875 | 237 | 3125 |
5 | 2 | 125 | 4193 | 6250 |
5 | 2 | 5831 | 11511 | 33614 |
5 | 2 | 3584 | 39589 | 65536 |
5 | 2 | 29889 | 17149 | 118098 |
5 | 2 | 31000 | 77207 | 200000 |
5 | 2 | 30613 | 48713 | 161051 |
5 | 2 | 22627 | 184425 | 322102 |
7 | 2 | 32 | 87 | 256 |
7 | 2 | 16807 | 539285 | 823543 |
7 | 2 | 1003833 | 216727 | 4782969 |
7 | 2 | 413343 | 5667493 | 9565938 |
7 | 2 | 1127357 | 10725128 | 19487171 |
7 | 2 | 7569397 | 3941297 | 38974342 |
7 | 2 | 248832 | 50054273 | 71663616 |
7 | 2 | 11510083 | 8739370 | 62748517 |
7 | 2 | 8539739 | 65279611 | 125497034 |
7 | 2 | 12909375 | 85000619 | 170859375 |
9 | 2 | 2187 | 5522 | 19683 |
9 | 2 | 78125 | 2502682 | 3906250 |
9 | 2 | 14000231 | 65934 | 80707214 |
9 | 2 | 14680064 | 137823851 | 268435456 |
9 | 2 | 310000000 | 169944073 | 2000000000 |
9 | 2 | 331281907 | 2131650810 | 4715895382 |
9 | 2 | 439239619 | 5978595177 | 10604499373 |
9 | 2 | 3074677333 | 2764642646 | 21208998746 |
9 | 2 | 3267818624 | 17194374007 | 41322093568 |
9 | 2 | 19058917376 | 21809310453 | 137438953472 |
4 | 3 | 28 | 223 | 512 |
4 | 3 | 270 | 289 | 1250 |
4 | 3 | 858 | 191 | 2592 |
4 | 3 | 936 | 2143 | 6561 |
4 | 3 | 4070 | 2159 | 14641 |
4 | 3 | 10764 | 239 | 28561 |
4 | 3 | 6578 | 20641 | 57122 |
4 | 3 | 12950 | 22543 | 76832 |
4 | 3 | 195 | 25087 | 50625 |
4 | 3 | 33872 | 22831 | 131072 |
m=1、n=1、のときは既約ピタゴラス数のことであり、
既約ピタゴラス数は無限に存在するので、プログラムでは各(m, n)において最大で10個表示するということにしました。
また、初期に作成したプログラムが吐き出したデータから、以下のような法則があるのではという推測のもと、新たにプログラムを作成しました。
法則1
(a, b, c)が整数解を持つならば、
cまたはrのどちらかが、xm
aが、xm-nの倍数
となるような整数xが存在するのではなかろうか。
プログラム的には、xをインクリメントさせて、a、c、rを定め、
余弦定理よりαを求め、βを求め、余弦定理よりbを求める。
逆三角関数、三角関数を使うことで、どうしてもbに誤差が生じてしまう。
C言語では、調べられる範囲が限られてしまい、また小数点以下何位まで0か9が連続して連なれば、整数とみなすかということになる。
C言語で作ったものが吐き出したデータが正しいのかを、多倍長電卓LMで小数点以下100桁まで0が続くことを確認して、おそらく正しいとしていたが、上記の法則を使って多倍長電卓LMでプログラミングしている。
法則2
gcd(m, n)=1でなければ、解が無い可能性がある。
上記データは、gcd(m, n)=1を除外して、多倍長電卓LMでプログラミングしたものの出力結果である。
m=5, n=3を検索途中なのだが、値を返さないで時間だけが過ぎて行っていたので、途中で止めたしまいました。
現在、終了条件をcが何桁以内まで検査するということで、プログラムを変更中。
ではでは