前回からの続きです。


問題1
半径rの円に内接するn角形があり、n角形の辺の長さをs1, s2, s3, …, snとする。
半径rは自然数で、それぞれの辺の長さは互いに異なる自然数で、更にrや2rとも異なるような、最小のrのn角形を求めよ。
なお、各辺を底辺とする二等辺三角形を考えると、二等辺三角形は入れ替え可能なので、s1, s2, s3, …, snの順番も入れ替え可能となるので、
s1<s2<s3<…<sn
とする。

問題2
半径rの半円の直径を1辺として内接するn角形があり、n角形の辺の長さをs1, s2, s3, …, snとする。それぞれの辺の長さは互いに異なる自然数となるn角形を求めよ。


前回はn=3について、逆三角関数ではなくて、3辺の長さから外接円の半径rを求める式を導出しましたね。

今回は、それの続きというか、また違ったアプローチです。

真円に内接する正n角形を考えると、nが大きくなるとプログラムのネストも増え、計算量が膨大になってしまう。

前回だかで、半円の直径を1辺とする三角形は、直角三角形になるので、ピタゴラス三角形を2つくっつければ、円に内接する四角形を作れるという発想をしたかと思う。

ここで、半円ではなく、円に内接する正三角形で出来る弓形に着目する。
円に内接する正三角形の1辺の長さsと、半径rとの関係は、頂角120˚の二等辺三角形の関係なので、
2s=3r となって、比であらわすと、
r:s=2:3
という関係になる。

半径rは自然数を想定しているので、正三角形の1辺は3の自然数倍であり、余弦定理で表すと、
3c2=a2+b2-2abcos(C)

円に内接することから、正三角形の外側の三角形ではCは120˚、正三角形の内側の三角形ではCは60˚、とすることで、

3c2=a2+b2+ab
3c2=a2+b2-ab

という式を満たす自然数a、b、cを求めるプログラムであれば、容易に解を見つけられるので、それらを組み合わせて、n=4、n=6を容易に求めることが出来る。という算段となる。

円に内接する正三角形を考えた上で、n=6を考えると、



3つの解を組み合わせて、こんなことが出来、当然中心から各頂点へ分割することで、二等辺三角形となり、辺の順序は入れ替え可能であるので、この通りである必要ないということになる。

n=3や7以降が見つけにくい理由の一つが、こういった方法が取れないことにあるのだろう。


ではでは