« 20140722 | Main | プログラミングを始めるには(10) »

July 26, 2014

プログラミングを始めるには(9)

プログラミングを面白いと感じるには、やはり自分でプログラムを書いて、書いたプログラムを自分で動かして、それを實感しなければならない。さらに面白いと思えるのは、誰かが「こういうこと出來ないかなあ」とつぶやいていたことをササッとやってのける。これほど痛快なことは無い。

最近はほとんどのパソコンのCPUが64ビットになってきたが、64ビットの最大値ってどういう數値なんだろう?と漠然と考えたことは無いだろうか。答えは「1844京6744兆737億955萬1615」である。20桁もあるので流石に單位を付けないと分かりにくい。まあしかし、このくらいならWindowsアクセサリの電卓でも簡單に表示してくれる。

Ws000082

ちなみにC言語でどこまでべき乘計算が出來るか試そうと思ったのであるが、Ubuntu14、Fedora20ともにうまくいかなかった。pow關數の使い方が閒違っているのか...。

Ws000083

ま、C言語はどうでも良い。elispだとこんな感じになる。

Ws000084

calc-evalという關數はGNU Calcというモンスター計算機の中の一つの關數である。文字列編集で作り出した數式を評價してくれる非常に便利なものだ。C言語だとCPUによる計算に縛られたような結果しか出せないが、Lispはそうではない。その分性能は良くないが、2の64乘くらいの計算なら、どっちでやっても大差はない。しかし、2の128乘とかになると讀むことも出來ないような大きな數値になり、電卓でも自然數として表示することは出來ない。elispでは數値は24ビットなので、それを超える數値は計算出來ない。そのためGNU Calcは數文字列として計算しているようだ。

Ws000085

このへんまではほぼ瞬閒的に計算出來る。もはやパッと見ても桁數すら分からない(2467桁)ような數値だが。

|

« 20140722 | Main | プログラミングを始めるには(10) »

Comments

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/74224/60047230

Listed below are links to weblogs that reference プログラミングを始めるには(9):

« 20140722 | Main | プログラミングを始めるには(10) »