【演算法】-002 小數四捨五入截斷
【演算法】-002 小數四捨五入截斷
實際應用中,由於採集裝置的精度問題,雖然測量值在有效範圍內,但可能資料尾部會處在一直跳變的過程中。為了將不穩定的資料位捨去,因此需要將測試資料進行帶四捨五入的截斷。
1、 實現
將帶小數的測試資料直接進行資料型別轉換,使用C++編譯器預設的截斷規則進行小數截斷。比如,要將1.123456保留5位小數,使用C++程式碼方法如下:
float DecimalTruncation(float a, int nCount)
{
float d = 0;
//先將資料放大10^nCount倍,將小數點右移nCount位,之後進行整數截斷,為了確保四捨五入的進行,將放大後的資料+0.5,
//截斷之後再將結果縮小10^nCount倍,將小數點左移nCount位。
d = (int(a * pow(10, nCount)+0.5)) / pow(10, nCount);
return d;
}
相關推薦
【演算法】-002 小數四捨五入截斷
【演算法】-002 小數四捨五入截斷 實際應用中,由於採集裝置的精度問題,雖然測量值在有效範圍內,但可能資料尾部會處在一直跳變的過程中。為了將不穩定的資料位捨去,因此需要將測試資料進行帶四捨五入的截斷。 【演算法】-002 小數四捨五入截斷
【資料結構與演算法】002—樹與二叉樹(Python)
概念 樹 樹是一類重要的非線性資料結構,是以分支關係定義的層次結構 定義: 樹(tree)是n(n>0)個結點的有限集T,其中: 有且僅有一個特定的結點,稱為樹的根(root) 當n>1時,其餘結點可分為m(m>0)個互不相交的有限集T1,T2,……Tm,其中每一個集合本身又是一棵
【OJ2130】K小數查詢
很好 print char line 分塊 con 多少 第一個 () 2130 -- K小數查詢(Solution) 題目大意 : 給你一個長度為 \(N\) 的數列和 \(Q\) 個操作,操作包括:①區間加一個數;②詢問區間內第 \(k\) 小的數。\((n,q\le8
【爬蟲】002 python3 +beautifulsoup4 +requests 爬取靜態頁面
bgcolor img err 預覽 政府 bold 技術 貴的 頁面元素 實驗環境: win7 python3.5 bs4 0.0.1 requests 2.19 實驗日期:2018-08-07 爬取網站:http://www.xhsd.cn/ 現在的網站大多有復雜
【演算法】字串迴圈移位後是否包含
問題 給定兩個字串s1和s2,要求判斷s2是否能夠被通過s1做迴圈移位(rotate)得到的字串包含。 例如,s1=AABCD和s2=CDAA,返回true;給定s1=ABCD和s2=ACBD,返回false。 解法一 最直接最笨的方法就對s1進行迴圈移動,再
12、【演算法】查詢演算法總結
一、順序查詢 1、定義 順序查詢屬於無序查詢,從資料結構的一端開始,順序掃描,依次將掃描到的節點關鍵字與給定值K相比,若相等,則表示查詢成功,若掃描結束,仍未找到關鍵字與給定值K相等,則表示查詢失敗。 時間複雜度分析 查詢成功時:平均查詢長度為(N+1)/2
13、【演算法】演算法複雜度分析
一、演算法的時間複雜度分析 1、時間複雜度的定義 在進行演算法分析時,演算法中基本操作語句重複執行的次數是問題規模n的某個函式,用T(n)表示,若有某個輔助函式f(n),使得當n趨近於無窮大時,T(n)/f(n)的極限值為不等於零的常數,則稱f(n)是T(n)的同數量級函式,
11、【演算法】排序演算法總結
常見排序演算法總結 一、氣泡排序 1、定義 氣泡排序是一種比較簡單的排序演算法,它會遍歷若干次要排序的數列,每次便利時,它都會從前往後依次的比較兩個相鄰的數的大小;如果前者比後者大,則交換它們的位置。 這樣一次遍歷之後,最大的元素就在數列的末尾了。採用相同的方法在
【演算法】第三章作業 實踐報告
【演算法】實踐第三章作業 1. 實踐題目 最大子段和 2. 問題描述 給定n個整數(可能為負數)組成的序列a[1],a[2],a[3],…,a[n],求該序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。當所給的整數均為負數時,定義子段和為0。
【演算法】-003 三次貝塞爾曲線的交點
【演算法】-003 三次貝塞爾曲線的交點 最近在工作中遇到一個問題,想通過計算兩條三次貝塞爾曲線的交點位置。嘗試了列舉法之後覺得計算速度太慢,於是來找其他演算法。 文章目錄 【演算法】-003 三次貝塞爾曲線的交點 1、 列舉法求貝塞爾曲線交
【演算法】cuda 快排
核心程式碼: __global__ void cdp_simple_quicksort(unsigned int *data, int left, int right, int depth) { // If we're too deep or there are few el
【演算法】以給定值x為基準將連結串列分割成兩部分,所有小於x的結點排在大於或等於x的節點之前
/* * 直接建立兩個連結串列:一個連結串列存放小於x的元素,另一個存放大於或等於x的元素。 * 然後迭代訪問整個連結串列,將元素插入before或者after連結串列前端!!!一旦抵達連結串列末端,則表明拆分完畢,最後合併兩個連結串列。 */
【演算法】二叉樹前序、中序、後序遍歷相互求法(轉)
二叉樹前序、中序、後序遍歷相互求法 原文地址 今天來總結下二叉樹前序、中序、後序遍歷相互求法,即如果知道兩個的遍歷,如何求第三種遍歷方法,比較笨的方法是畫出來二叉樹,然後根據各種遍歷不同的特性來求,也可以程式設計求出,下面我們分別說明。  
【演算法】二叉樹的遞迴和非遞迴遍歷(轉)
原文地址 【寫在前面】 二叉樹是一種非常重要的資料結構,很多其它資料結構都是基於二叉樹的基礎演變而來的。對於二叉樹,有前序、中序以及後序三種遍歷方法。因為樹的定義本身就 是遞迴定義,因此採用遞迴的方法去實現樹的三種遍歷不僅容易理解而且程式碼很簡潔。而對於樹的遍歷若採用非遞迴的方法,就要採
【演算法】貪心演算法
1. 定義 貪心演算法(又稱貪婪演算法)是指,在對問題求解時,總是做出在當前看來是最好的選擇。也就是說,不從整體最優上加以考慮,他所做出的是在某種意義上的區域性最優解。 2. 基本要素 (1)貪心選擇 貪心選擇是指所求問題的整體最優解可以通過一系列區域性最優的選擇,即貪心選擇
【演算法】演算法分析
相關資料來源於網路,侵刪歉。 如果文章中存在錯誤,請下方評論告知我,謝謝! 用科學的方法分析演算法 觀察真實世界的特徵; 根據觀察提出假設模型; 根據模型預測未來的事件; 繼續觀察驗證預測的準確性; 反覆如此直到確認預測和觀察一致。 原則
【演算法】二叉樹的廣度遍歷
廣度優先遍歷的核心思想如下:從根節點開始遍歷,然後遍歷其子節點,再從左至右的,依次遍歷其孫子節點的,以此類推,直到完成整顆二叉樹的遍歷。 50 20 &nbs
【演算法】LeetCode演算法題-Length Of Last Word
這是悅樂書的第155次更新,第157篇原創 01 看題和準備 今天介紹的是LeetCode演算法題中Easy級別的第14題(順位題號是58)。給定一個字串,包含戴爾字母、小寫字母和空格,返回最後一個單詞的長度,如果最後一個單詞不存在則返回0。另外,單詞不包含空格。例如:
【演算法】LeetCode演算法題-Maximum Subarray
這是悅樂書的第154次更新,第156篇原創 01 看題和準備 今天介紹的是LeetCode演算法題中Easy級別的第13題(順位題號是53)。給定一個整數陣列nums,找出一個最大和,此和是由陣列中索引連續的元素組成,至少包含一個元素。例如: 輸入:[-2, 1, -
【演算法】LeetCode演算法題-Count And Say
這是悅樂書的第153次更新,第155篇原創 01 看題和準備 今天介紹的是LeetCode演算法題中Easy級別的第12題(順位題號是38)。count-and-say序列是整數序列,前五個術語如下: 1 11 21 1211