ab.com コミュニティ https://www.activebasic.com/forum/ |
|
何のプログラムかわかる人いますか? https://www.activebasic.com/forum/viewtopic.php?t=392 |
ページ 1 / 1 |
作成者: | konisi [ 2005年10月16日(日) 18:18 ] |
記事の件名: | 何のプログラムかわかる人いますか? |
適当に多倍長計算の技術使ってつくったソフトです。 さて、このプログラムはある記号に代入されている数(たとえば3.14)を求めるプログラムなのですが、何を求めるプログラムかわかる人いますか? コード: #N88BASIC const K=100000:const A=9 dim P(K+1) As DWord:dim Q:dim E(K) As DWord:dim I:dim SYORI dim NAME$:dim S$ NAME$=Str$(K*A)&".txt" SYORI=0 Q=1 P(K+1)=0 Print SYORI:Locate 0,0 for I=1 To K-1 P(I)=0 E(I)=0 Next I Print "計算中・・・" E(0)=1 P(0)=1 *A P(K+1)=0 Print Int(SYORI) Locate 0,1 for I=0 To K-1 P(I+1)=P(I+1)+(P(I) Mod Q)*10^A P(I)=Int(P(I)/Q) Next I for I=0 To K-1 E(I)=E(I)+P(I) if E(I)>=10^A then E(I)=E(I)-10^A E(I-1)=E(I-1)+1 End if Next I SYORI=SYORI+Q Q=Q+1 if SYORI>K*A then goto *B goto *A *B for I=0 To K-1 if E(I)>=10^A then E(I)=E(I)-10^A E(I-1)=E(I-1)+1 End if Next I for I=0 To K-1 if E(I)>=10^A then E(I)=E(I)-10^A E(I-1)=E(I-1)+1 End if Next I Print K*A BEEP Print "保存中・・・" Open NAME$ for Output As #1 Print #1,Q Print #1,"" Print #1,"2." Print #1,E(1) for I=2 To K S$=Str$(E(I)) Print #1,S$ Locate 0,3 Print I*A Next I Close #1 BEEP Endちなみに、根本的なループ回数が適当だったりするので、わからない人にはわからないと思います。 ヒントは、数学の世界では「無理数」「超越数」等と呼ばれている数の一つ。 |
ページ 1 / 1 | 全ての表示時間は UTC+09:00 です |
Powered by phpBB® Forum Software © phpBB Limited https://www.phpbb.com/ |