辺の長さが、1,2,3,4,5,6の適当な並べ替え の等角6角形

 投稿者:山中和義  投稿日:2013年12月 9日(月)10時25分39秒
  問題
次の条件をみたす六角形が存在することを示せ。
(1) すべての内角の大きさが120度である。
(2) 辺の長さが、1,2,3,4,5,6の適当な並べ替えである。

考察
多角形なので、辺の並びはじゅず順列で考える。
n-順列から、円順列生成して、裏返しを篩ってじゅず順列とする。

必要条件
z=EXP(2πi/n)=cos(2π/n)+i*sin(2π/n)、iは虚数単位 とする。
これより、z^2-{2cos(2π/n)}z+1=0 ←式1
辺の並びa[1],a[2],a[3],…,a[n]に対して、
多項式 a[1]+a[2]z+a[3]z^2+ … +a[n]z^(n-1) が 式1 で割り切れる。
(終り)


一般的な形で述べると、
nが(s+1)個の相異なる素数(またはどの2つも互いに素な自然数)の積に分解するとき、
辺の長さが1^s, 2^s, …, n^sの並べ替えであるような等角n角形(内角が等しい)が存在する。

n=6=2*3、10=2*5、12=3*4、14=2*7、15=3*5、…

n=14以上は困難である。



OPTION ARITHMETIC COMPLEX !複素平面

PUBLIC NUMERIC n
LET n=6

DIM a(n)
FOR i=1 TO n !最初の並び 1,2,3,…,n
   LET a(i)=i
NEXT i

PUBLIC NUMERIC C !場合の数
LET C=0
CALL perm(a,2) !円順列、じゅず順列
PRINT C;"通り"

END

EXTERNAL SUB perm(a(),k) !辞書順序でn-順列(n!通り)を生成する
OPTION ARITHMETIC COMPLEX !複素平面
IF k=n THEN !すべて並んだなら
   IF a(2)<a(n) THEN !じゅず順列
      CALL stub(a)
   END IF
ELSE
   FOR i=k TO n
      LET t=a(i) !k≦iとして、kからiまでの範囲を右ローテイト
      FOR j=i-1 TO k STEP -1
         LET a(j+1)=a(j)
      NEXT j
      LET a(k)=t

      CALL perm(a,k+1) !次へ

      LET t=a(k) !k≦iとして、kからiまでの範囲を左ローテイトで元に戻す
      FOR j=k TO i-1
         LET a(j)=a(j+1)
      NEXT j
      LET a(i)=t
   NEXT i
END IF
END SUB

EXTERNAL SUB stub(a())
OPTION ARITHMETIC COMPLEX !複素平面
!z=EXP(2πi/n)として、A[1]+A[2]z+A[3]z^2+A[4]z^3+ … +A[n]z^(n-1)=0かどうか確認する
LET z=EXP(2*PI*COMPLEX(0,1)/n)
DIM P(0 TO n) !多角形の頂点位置を算出する
LET P(0)=0
FOR i=1 TO n
   LET P(i)=P(i-1)+a(i)*z^(i-1)
NEXT i
IF ABS(P(n))<1E-12 THEN !題意を満たすなら

   LET C=C+1
   MAT PRINT a;

   SET WINDOW -5,6,-2,9 !n=6
   !SET WINDOW -13,11,-1,23 !n=10
   CLEAR
   DRAW grid

   MAT PLOT LINES: P !多角形を描く

   WAIT DELAY 2

END IF
END SUB


実行結果

1  4  5  2  3  6

1  5  3  4  2  6

2 通り



 

戻る