マガジンの零を読んでルート2を求めたくなったくぅふク。
手計算
11桁目まで出したがめんどくさくて降参。
そして、検算をしなければならないが…
めんどくさいので、コンピュータに任せよう。
プログラムを組む
いまから10年前くらいにPCなしで覚えたBASICでやってみようとするが
なんか、うまくいかない。
小学校のときより衰えてないか、俺の脳みそ…
10 X=0
20 A=2
30 for N=0 to 1000
40 I=9
50 if A<(X+I)*I then 60 else 80
60 I=I-1
70 goto 50
80 print I;
90 A=(A-((X+I)*I))*100
100 X=(X+I*2)*10
110 next N
120 end
GOTOとか使ってるけど許してね。
結果
見やすくすると、こんな感じ。
1.
4142135623 7309504880 1688724209 6980785696 7187537694 8073176679 7379907324 7846210703 8850387534 3276415727
3501384623 0912297024 9248360558 5073721264 4121497099 9358314132 2266592750 5592755799 9505011527 8206057147
0109559971 6059702745 3459686201 4728517418 6408891986 0955232923 0484308714 3214508397 6260362799 5251407989
6872533965 4633180882 9640620615 2583523950 5474575028 7759961729 8355752203 3753185701 1354374603 4084988471
6038689997 0699004815 0305440277 9031645424 7823068492 9369186215 8057846311 1596668713 0130156185 6898723723
5288509264 8612494977 1542183342 0428568606 0146824720 7714358548 7415565706 9677653720 2264854470 1585880162
0758474922 6572260020 8558446652 1458398893 9443709265 9180031138 8246468157 0826301005 9485870400 3186480342
1948972782 9064104507 2636881313 7398552561 1732204024 5091227700 2269411275 7362728049 5738108967 5040183698
6836845072 5799364729 0607629969 4138047565 4823728997 1803268024 7442062926 9124859052 1810044598 4215059112
0249441341 7285314781 0580360337 1077309182 8693147101 7111168391 6581726889 4197587165 8215212822 9518488472
感想
UBASIC、すげー!!!
いや、WindowsでBASICを扱えるUBASICというフリーソフト使ってみたんですが
こいつ、2700桁まで整数を扱えるんですね。
1桁求めるごとに、プログラム中Aの値も1桁増えていくので、
sqrt(2)も2700桁くらいまでは求められそうです。2598桁までいけました。
cでlong使っても19桁で止まっちゃうからなぁ…
検算
間違っていましたorz
俺の脳みそはもう味噌というより液体だなw