TakaPの数学日記

数学を教えていて感じたことや日常の感想などを記録しました。

2次無理数の連分数展開

2010年06月28日 08時13分04秒 | 数学
gbさんの質問に関連して、連分数を簡単に計算できるプログラムを紹介する。
10進Basic というソフトで作ってある。もとはといえばUBASICというソフトに付属のプログラムがあり、これを10進Basicに移植した。私はこのプログラムの原理が分からなくて、ブログにのせて発表したことがあるが、回答は得られなかった。
とにかく便利。お試しあれ。

1.10進Basicのサイトからソフトをダウンロード
2.以下プログラムをコピー&ペーストし、ファイルネームをつけてテキストファイルにしておく。
3.10進Basicでファイルを読み込ませる。(ドラッグ&ドロップでも読める)
4.プログラムを走らせる。

例  ルート7
プログラムを実行すると
n= という入力ウィンドウがでるので、7を入力。
すると、出力テキストウィンドに

n=7
 2 [ 1  1  1  4 ]

と出力される。






1 !
2 !
3 ! 2次無理数の連分数展開
4 !
5 !
6 ! filename confra.bas
7 !
8 !
9 !
10 !
20 !
30 !
40 !
50 !
100 !
110 INPUT PROMPT "n=":n
120 IF n=0 THEN STOP
130 LET  qn=INT(SQR(n))
140 IF qn=SQR(n) THEN GOTO 500
150 PRINT qn;"[";
160 LET  c=n-qn^2
170 LET a=qn
180 LET  a1=a
190 LET  c1=c
200 ! repeat
210 LET  k=INT((qn+a)/c)
220 PRINT k;
230 LET  a=c*k-a
240 LET  c=INT((n-a^2)/c)
250 IF (a<>a1)OR(c<>c1) THEN GOTO 200
260 PRINT "]"
270 PRINT
280 GOTO 110
290 !
500 PRINT qn;"の2乗です。"    
510 PRINT
520 GOTO 110
    
    
    
 END
 
コメント (8)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする