作者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