c語言如何實現盡可能長的位數的高精度計算

時間 2021-05-30 11:26:45

1樓:灰機

第一,無限是不可能無限的,你如果學過高等數學就知道,無限是永遠達不到的乙個狀態。

第二,高精度是有限制的,乙個計算能計算的能力是有限的,不能能達到多高的精度。

如果不理解,你可以查一下怎麼比較乙個浮點數等於0, 是不是float a == 0?。。

2樓:遠見望遠

瀉藥,其他回答從常規思路已經說的很全面了,我從摳字眼的「無限」角度來回答這個問題。

需要首先宣告,這樣的運算帶來的結果不考慮對運算機器的意義,也就是不考慮其他應用如何使用這個運算的結果,只考慮如何實現運算。

如果「無限」是相對運算機而言的,那這個特性可以看做,兩個無限長度的數字流,按位相加,帶進製功能

設數字流a,b,起始位編號為0,長度無限,進製變數up初始化為0

對第i位,得到結果res=a[i]+b[i]+up

然後更新進製變數up=res/10向下取整

這樣得到的結果序列就是兩個無限長度的數字相加結果,只不過順序是從低位到高位。

進製並不會滾雪球滾大滾出計算機的表示邊界,極端情況,a,b的數字流全部由9組成,第0位相加:9+9=18進製1;第2位9+9+1=19進製1,之後的位相加與第2位相同,因此進製最大只能是1,不會產生滾雪球。

這樣運算的結果可能也只能被同樣使用流進行計算的程式使用了

3樓:黎黎黎

我乙個malloc 6萬懟上,不夠就再realloc一下。

如果覺得這樣不好,可以用鍊錶。我有使用過雙向鍊錶。很好用,下次有錢換記憶體還會繼續用。

4樓:Hocker

我看到題主說了陣列,然後不少答主說了堆疊,堆疊其實就是記憶體,那當然還可以使用硬碟。但這些都是權宜之計。

我想說的是在大一學的計算機問題的乙個特徵,計算機不能解決無限問題!!!題主切記!!!

C 怎麼實現效率盡可能高地帶邊界檢查的多維陣列模板類

tearshark 我看大家走入了乙個誤區。認為多維的訪問一定要通過多個引數的operator 或者多次的operator來訪問。這導致設計的時候縮手縮腳。其實,完全可以做乙個index類嘛 template struct index size t idx Dimension 然後訪問的時候,通過過...

移民後如何盡可能地實現財富自由?

麥小麥 才讀大一就規劃那麼遠!還是好好把專業和語言學好,找到工作再談其他吧。有的人雖說移民了但找乙份穩定的工作都難,財富自由不切實際。 LeeLi 實現財富自由的方式有三種第一你有固定資產美國哪個城市你沒說如果是波士頓洛杉磯這種國內房子一賣美國當地買個學校附近公寓如果有全款實力就更好了租金的話一年三...

初到英國的各位,是如何盡可能的最小化語言問題並且跟得上大學課程的?

牛津金融學長 第一你得改變你對英語態度的慣性部分。國內英語太功利,都是以考試為中心,導致很多學生遇到困難就習慣性的回到之前那種狀態。第二你得在內心中克服自己的牴觸情緒,敢說敢犯錯。第三全面的把自己在課餘的時間逼到英語環境裡,在國外有意識的把時間留給跟本地的同學交流。現在到了課程部分,我不知道你是哪家...