<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

      劉徽《9章算術》中的勾股數

      [摘要]若A、B、C為滿足A2+B2=C2的正整數。我國古代數學書《周髀算經》曾經提到“勾廣三,股修四,徑偶五”這三個邊都是正整數的直角三角形。在公元263年時,我國數學家:劉徽寫了一本數學書,書名叫作《九...
      若A、B、C為滿足A2+B2=C2的正整數。我國古代數學書《周髀算經》曾經提到“勾廣三,股修四,徑偶五”這三個邊都是正整數的直角三角形。在公元263年時,我國數學家:劉徽寫了一本數學書,書名叫作《九章算術》,其中有

      32+42=52

      52+122=132

      72+242=252

      82+152=172

          202+212=292

         由此看來我國古代數學家已經研究出很多組勾股數。

      (一)  見程序設計思路筆算從略

        請你編寫程序,求出100之內的所有組勾股數,并打印全部結果。

      (二)  程序設計

      設計思路

      由不定方程:A2+B2=C2      (1)

        有定理:不定方程(1)的適合條件

           A>0,  B>0,   C>0,    (A,B)=1,2 A

      的一切正整數解,可用下列公式表示出來:

           A=2XY,    B=X2-Y2,    C=X2+Y2

          這里的X和Y都是正整數,而且X>Y (X、Y)=1,2 (X+Y)

          如果按照此定理編寫出源程序當然是可以的。但對不了解此定理的讀者這樣編寫就比較困難。所以這里使用一般的方法。首先設法得到從3到100之間的數的兩組合。利用二重循環可以達到這一目的。令外循環變量為A,A從1到99。令內循環的循環變量為B,B從A+1到100。然后在循環體內判斷A和B是否滿足等式(1)。

          將滿足等式的A和B及C打印出來。為了縮短機器運算時間,我們可以利用勾股數的奇偶特性。即在A和B中一個是奇數,另一個必定是偶數。那么可以讓B從A+1開始,每次增加步長為2。因為A若是奇數,A+1就是偶數。以后步長是2,B總是為偶數。如果A是偶數,A+1就是奇數。以后步長是2,B總為奇數。我們用整形變量I、J、L分別代表A、B、C

      FORTRON源程序:

          WRITE(*,30)

          DO 10 I=3,99

            K=I+1

            DO 10 J=K,100,2

              S=I*I+J*J

              S=SQRT(S)

          L=S

          IF(L.GT.100.OR.ABS(S-L).GT.0.1E-06) GOTO 10

              WRITE(*,20)I,J,L

      10 CONTINUE

      20  FORMAT(2IX,3I5)

      30  FORMAT(25X,’A          B           C ‘/20X,’--------------------’)

          END



      BASIC源程序

      10 PRINT "A              B               C"

      20 PRINT "--------------------------------"

      30 FOR I = 3 TO 99

      40   K = I + 1

      45   FOR J = K TO 100

      50     S = I * I + J * J

      60     S = SQR(S)

      70     L = INT(S)

      80     IF L >= 100 OR L <> S THEN 100

      90     PRINT I, J, L

      100           NEXT J

      110   NEXT I


      日韩精品一区二区三区高清