整数4面体

 投稿者:山中和義  投稿日:2015年 3月 3日(火)13時54分58秒
  問題
6本の辺の長さ(ただし、1桁の整数とします)がすべて異なる4面体はどんなものがありますか。
また、その体積を求めてください。

http://mathworld.wolfram.com/Cayley-MengerDeterminant.html

答え 順列による
4面体OABCについて、OA=a、OB=b、OC=c、AB=d、BC=e、CA=fとする。
1≦a,b,c≦Nとして、
dは、面OABすなわち三角形OABが成立する必要条件 |a-b|<d<a+bを満たす。
eは、面OBC |b-c|<e<b+c
fは、面OCA |c-a|<f<c+a かつ 面ABC |d-e|<f<d+e
得られた結果の2328通りを24で割った値(97通り)が、対称性を除いた場合の数である。
(終わり)


LET N=9 !検索範囲

LET K=0
FOR a=1 TO N !辺OA
   FOR b=1 TO N !辺OB
      IF NOT( b-a=0 ) THEN !b≠a
         FOR c=1 TO N !辺OC
            IF NOT( (c-a)*(c-b)=0 ) THEN !c≠aかつc≠b

               FOR d=ABS(a-b)+1 TO MIN(N+1,a+b)-1 !面OAB
                  IF NOT( (d-a)*(d-b)*(d-c)=0 ) THEN

                     FOR e=ABS(b-c)+1 TO MIN(N+1,b+c)-1 !面OBC
                        IF NOT( (e-a)*(e-b)*(e-c)*(e-d)=0 ) THEN

                           FOR f=MAX(ABS(c-a),ABS(d-e))+1 TO MIN(N+1,MIN(c+a,d+e))-1 !面OCA,面ABC
                              IF NOT( (f-a)*(f-b)*(f-c)*(f-d)*(f-e)=0 ) THEN

                                 CALL calc(a,b,c,d,e,f, V2)
                                 IF V2>0 THEN !結果を表示する
                                    LET K=K+1
                                    PRINT STR$(K);":"; a;b;c;d;e;f; SQR(V2)
                                 END IF

                              END IF
                           NEXT f

                        END IF
                     NEXT e

                  END IF
               NEXT d

            END IF
         NEXT c
      END IF
   NEXT b
NEXT a

END


EXTERNAL SUB calc(a,b,c,p,q,r, V2) !4面体OABCの体積(2乗)
!4面体OABCについて、OA=a、OB=b、OC=c、AB=p、BC=q、CA=rとする。
LET V2=( a^2*q^2*(b^2+c^2+p^2+r^2-a^2-q^2) &
&       +b^2*r^2*(a^2+c^2+p^2+q^2-b^2-r^2) &
&       +c^2*p^2*(a^2+b^2+q^2+r^2-c^2-p^2) &
&       -a^2*b^2*p^2 -b^2*c^2*q^2 -a^2*c^2*r^2 -p^2*q^2*r^2 ) / 144 !オイラーの四面体公式
END SUB




答え 回転対称を除く
4面体OABCについて、OA=a、OB=b、OC=c、AB=d、BC=e、CA=fとする。
展開図
  O   C   O
  △▽△▽
 A  B   A
面OABの辺の並びを固定する。
aは、a,b,c,d,e,fの中で一番目に最小とする。
bは、a,b,dの中で二番目に最小とする。
dは、b<d かつ 面OABすなわち三角形OABが成立する必要条件 |a-b|<d<a+bを満たす。
これより、面OABは最小の辺をもつ三角形となり、a,b,dまたはa,d,bと並べたものである。
続いて、
cは、a<c
eは、a<e かつ 面OBC |b-c|<e<b+c
fは、a<f かつ 面OCA |c-a|<f<c+a かつ 面ABC |d-e|<f<d+e
よって、
得られた結果の194通りを2で割った値(97通り)が、対称性のものを除いた場合の数である。
(終わり)

鏡映対称
a b c d e f ⇔ a c b f e d
a b c d e f ⇔ a f d c e b



LET N=9 !検索範囲

LET K=0
FOR a=1 TO N-5 !面OAB
   FOR b=a+1 TO N-1
      FOR d=MAX(b,ABS(a-b))+1 TO MIN(N+1,a+b)-1

         FOR c=a+1 TO N
            IF NOT( (c-b)*(c-d)=0 ) THEN !c≠a、c≠b、c≠d

               FOR e=MAX(a,ABS(b-c))+1 TO MIN(N+1,b+c)-1 !面OBC
                  IF NOT( (e-b)*(e-c)*(e-d)=0 ) THEN

                     FOR f=MAX(a,MAX(ABS(c-a),ABS(d-e)))+1 TO MIN(N+1,MIN(c+a,d+e))-1!面OCA,面ABC
                        IF NOT( (f-b)*(f-c)*(f-d)*(f-e)=0 ) THEN

                           CALL calc(a,b,c,d,e,f, V2)
                           IF V2>0 THEN !結果を表示する
                              LET K=K+1
                              PRINT STR$(K);":"; a;b;c;d;e;f; SQR(V2)
                           END IF

                        END IF
                     NEXT f

                  END IF
               NEXT e

            END IF
         NEXT c

      NEXT d
   NEXT b
NEXT a

END


EXTERNAL SUB calc(a,b,c,p,q,r, V2) !4面体OABCの体積(2乗)
!4面体OABCについて、OA=a、OB=b、OC=c、AB=p、BC=q、CA=rとする。
LET V2=( a^2*q^2*(b^2+c^2+p^2+r^2-a^2-q^2) &
&       +b^2*r^2*(a^2+c^2+p^2+q^2-b^2-r^2) &
&       +c^2*p^2*(a^2+b^2+q^2+r^2-c^2-p^2) &
&       -a^2*b^2*p^2 -b^2*c^2*q^2 -a^2*c^2*r^2 -p^2*q^2*r^2 ) / 144 !オイラーの四面体公式
END SUB




------------------------------------------------------------

問題 ヘロンの4面体
6本の辺の長さ、4面の面積、体積がすべて整数となる4面体はどんなものがありますか。

答え
1: 25  39  153  56  120  160  V=8064
2: 51  52  84  53  80  117  V=18144
3: 65  119  200  156  87  225  V=35280
4: 65  225  297  232  468  340  V=399168
5: 140  176  275  300  429  261  V=243936
6: 175  203  318  252  221  319  V=1241856 など



OPTION ARITHMETIC RATIONAL

LET N=250 !検索範囲

LET S=0
FOR a=1 TO N !面OAB
   FOR b=a TO N
      FOR d=MAX(b,ABS(a-b)+1) TO MIN(N+1,a+b)-1

         LET t=heron(a,b,d)
         IF INTSQR(t)^2=t THEN !ヘロン三角形なら

            FOR c=a TO N
               FOR e=MAX(a,ABS(b-c)+1) TO MIN(N+1,b+c)-1 !面OBC

                  LET t=heron(b,c,e)
                  IF INTSQR(t)^2=t THEN

                     FOR f=MAX(a,MAX(ABS(c-a),ABS(d-e))+1) TO MIN(N+1,MIN(c+a,d+e))-1!面OCA,面ABC

                        LET t=heron(c,a,f)
                        LET tt=heron(d,e,f)
                        IF INTSQR(t)^2=t AND INTSQR(tt)^2=tt THEN

                           IF gcd(a,gcd(b,gcd(c,gcd(d,gcd(e,f)))))=1 THEN !互いに素

                              CALL calc(a,b,c,d,e,f, V2)
                              IF V2>0 AND INTSQR(V2)^2=V2 THEN !結果を表示する
                                 LET S=S+1
                                 PRINT STR$(S);":"; a;b;c;d;e;f; INTSQR(V2)
                              END IF

                           END IF

                        END IF

                     NEXT f

                  END IF

               NEXT e
            NEXT c

         END IF

      NEXT d
   NEXT b
NEXT a

END


EXTERNAL FUNCTION heron(a,b,c) !三角形OABの面積(2乗)
OPTION ARITHMETIC RATIONAL
LET s=(a+b+c)/2
LET heron=s*(s-a)*(s-b)*(s-c) !ヘロンの公式
END FUNCTION


EXTERNAL SUB calc(a,b,c,p,q,r, V2) !4面体OABCの体積(2乗)
!4面体OABCにすいて、OA=a、OB=b、OC=c、AB=p、BC=q、CA=rとする。
OPTION ARITHMETIC RATIONAL
LET V2=( a^2*q^2*(b^2+c^2+p^2+r^2-a^2-q^2) &
&       +b^2*r^2*(a^2+c^2+p^2+q^2-b^2-r^2) &
&       +c^2*p^2*(a^2+b^2+q^2+r^2-c^2-p^2) &
&       -a^2*b^2*p^2 -b^2*c^2*q^2 -a^2*c^2*r^2 -p^2*q^2*r^2 ) / 144 !オイラーの四面体公式
END SUB

 

戻る