作者chchwy (mat)
看板NTUE-CS100
標題[課業] 大數運算
時間Sun Dec 28 16:16:04 2008
大數
什麼是大數? 簡單講就是超大的數....
電腦的資料型態都受到範圍限制,比如說Java裡的int可以到20億,long可以到九百萬兆
,double大約有15位的精確度,超過這些範圍計算就會GG。
內建型態可以應付大部分日常狀況,但總有例外,我舉個簡單的例子,化學計算莫耳數
6x10^23,或者是算酸鹼濃度時候,滿天飛來飛去的幾十幾百次方,或者天文上要計算
半人馬座到地球的距離,這些科學計算很容易就超出內建資料型態的範圍。
那怎麼辦呢?超出電腦能應付的範圍後,就只用人腦啦。
自己親手對數字操作各種加減乘除動作,這就是大數運算
==
大數運算依照需求可以寫到不同的程度,比如說只支援正整數啦...或者全部整數
我這邊打算講彈性最大的一種,不只支援正負號,還支援浮點運算 (就是有小數點啦...)
為了讓大家有更鮮明的印象
我舉個例子,到時候各位寫出來的計算機將可以做以下運算 :D
123456789123456789123459789123456789123456.9789123459789888555522222277
+ (或者-*/)
0.0000000000044445879551235458984651321326589546212365498987984321356598788888
= ?
看起來很可怕嗎? 其實大數運算不難,只要有一些數學常識,加一顆靈活的腦袋。
ps.很久沒寫java了,教學可能沒辦法寫很快,哈哈...
--
夜精小德 Char - 巨龍之喉 (前月神殿) PvP
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.68.15.209