通常情況下,linux核心是不支援浮點操作的。在進行資料處理過程中,我們經常會處於這樣的尷尬:計算過程的資料位長和計算結果的誤差產生了衝突.
例如如下的例項:102448/7*1024
這樣的表示式在核心中可以如下表達:
long result = 102448/7*1024;
當然,作為實際的操作過程,表示式中的字面常數通常是一些變數。如果result具有累積效應,上面的表示式將產生致命的誤差。
數學表達中 102448/7*1024的值為14986678
而表示式 result = 102448/7*1024 的值為14986240
顯然,這種誤差是巨大的,如何調整這種誤差呢?
我們可以將這種問題訴諸數學恒等式:
{a/b*c}= [a/b*c + a%b*c/b]
我們將進行驗證:
result = 102448/7*1024 + 102448%7*1024/7;
result = 14986240 + 438
result = 14986678
未完待續
作者「www.475551408.qq.com」
遺傳演算法的運算過程
遺傳演算法 genetic algorithm 是一類借鑑生物界的進化規律 適者生存,優勝劣汰遺傳機制 演化而來的隨機化搜尋方法。它是由美國的j.holland教授1975年首先提出,其主要特點是直接對結構物件進行操作,不存在求導和函式連續性的限定 具有內在的隱並行性和更好的全域性尋優能力 採用概率...
矩陣卷積運算過程講解
在爬蟲處理驗證碼的過程中接觸到矩陣卷積運算,關於該類運算,記錄一下自己的心得。理論知識 在講述卷積過程前,我們來了解一下卷積公式。根據離散二維卷積公式 其中a為被卷積矩陣,k為卷積核,b為卷積結果,該公式中,三個矩陣的排序均從0開始。現在對於上面卷積過程進行分析 我們用來做例子的 a 矩陣為 m m...
卷積的運算過程及matlab實現
卷積是訊號處理領域最為常見的運算,對於乙個線性時不變系統而言,只要知道了系統的單位衝擊響應,則可以由輸入序列x n 和單位衝擊響應h n 經卷積運算得到系統的輸出。下面給出輸入訊號x 1 2 3 4 單位衝擊響應h 2 1 1 時,系統輸出的運算過程,雖然matlab自帶了卷積函式conv,但是通過...