スクリプトもいたってシンプル…なのはあまり関係ないかしらん。--sumim2^20996011-1 >> temp.txt
返ってきません。ただ、Ruby が優秀なのは、open('temp.txt','w') {|f| f.print(2**20996011-1)}
をほぼ瞬時で返すことですね。print((2**20996011-1).modulo(10))
a=(2**20996011-1); while a!=0 do p(a % 10); a/=10; end(下から1桁づつ表示する)は、Crusoe600MHzでは2桁/秒くらいの速度で淡々と表示されるようです(時折GCでワンテンポ止まるけど)。つまりこれが延々と続くわけですね。最初の数百桁までしか見てないけど、この計算のしかただと処理時間が後半加速的に遅くなるってことは無い(よね?)ので、後は待つだけ。「返って来ない」のは待てなかっただけかも(^^;
返ってきません。(2 raisedTo: 20996011) - 1 の do it は数秒なので、計算は終えているのですが、十進文字列化がだめなようです。| file | file := FileStream fileNamed: 'temp.txt'. [(2 raisedTo: 20996011) - 1 printOn: file] ensure: [file close]
はちょっと待たされますが返ってはきます。(2 raisedTo: 20996011) - 1 \\ 10
a:=(2 raisedTo: 20996011) - 1. [a>0] whileTrue: [ Transcript show: ( a\\10 ). a := a // 10. ].みたいな感じ(これは動きます) --戯
writeFile "temp.txt" (show (2^20996011-1))
ともに ERROR - Garbage collection fails to reclaim sufficient space が生じます。mod (2^20996011-1) 10
(call-with-output-file "temp.txt" (lambda (p) (display (- (expt 2 20996011) 1) p)))
ともに Memory allocation error が生じます。--sumim(modulo (- (expt 2 20996011) 1) 10)
このページを編集 (3888 bytes)
以下の 2 ページから参照されています。 |
This page has been visited 6172 times.