回答
對數在計算機科學中出現的最常見方法之一是通過將一些數組重複分割成一半,這通常發生在二進制搜索,合併排序等分而治之算法中。在這些情況下,次,你可以劃分一個長度爲n的數組,然後再考慮單元素數組。
另一種很常見的對數出現方式是通過查看數字的位。用二進制表示一個數字大概用於編號n的n位。像基數排序這樣的算法,有時候一次只能工作一次,通常會產生像這樣的日誌。其他算法(如二進制GCD算法)通過分解兩個冪來工作,並因此最終以漂移的對數因子結束。
物理學,數學和其他科學中的對數經常出現,因爲您正在處理隨時間而變化的連續過程。自然對數出現在這些背景下,因爲某些過程隨時間推移的「自然」增長率是通過模擬e x(對於「自然」增長率的一些定義)來建模的。但是在計算機科學中,指數增長通常是由於像上述分而治之算法這樣的離散過程或操縱二進制值而產生的結果。因此,我們通常使用log作爲對數函數,因爲它經常出現。
這並不是說我們總是在CS中使用基數爲2的對數。例如,AVL樹的分析通常涉及以黃金比率爲基礎的對數,由於斐波納契數的存在,其基數爲φ。許多隨機算法在某種程度上確實涉及到e,例如快速排序的標準分析,它涉及諧波數量,因此連接回自然對數。這些都是增長率由別的東西 - 斐波那契數或指數函數 - 建模的過程的例子 - 所以我們選擇不同的日誌庫。只是用二進制數字處理或將事物分成一半而非常普遍 - 兩個對數最終成爲默認值。
在許多情況下,它甚至不關心你選擇的基地。例如,在大O符號中,所有對數都是漸近等價的(它們只是乘以一個常數因子),所以在寫O(n log n)或O(log n)時,我們通常甚至沒有指定基數)。
謝謝你,你的回答非常好,爲我澄清了很多問題。 – Andy
- 1. 計算機科學數學
- 2. 科學計算器 - 使用對數函數與兩個基地
- 3. 在數學科學中講計算機科學
- 4. 什麼是計算機科學背景下的超函數?
- 5. 爲什麼從基數10轉換爲基數2被認爲是慢?
- 6. 作爲計算機科學專業的學生閱讀/觀看背景什麼
- 7. 計算機科學與信息科學有什麼區別?
- 8. 爲什麼數值在MATLAB中以科學記數法存儲?
- 9. 計算機科學
- 10. .Net中科學計算的推薦數據類型是什麼?
- 11. 爲什麼Ruby和Python的數學計算是不同的
- 12. 爲什麼被計算
- 13. 如何計算Z3中的Bitvectors的對數基數2?
- 14. 學習RoR和Mongo,爲什麼不計算陣列的票數
- 15. 爲什麼NumPy中有奇怪的科學記數法?
- 16. 爲什麼此數組返回0作爲對象計數?
- 17. Edhesive AP計算機科學U1 Ex 2
- 18. 爲什麼原始類型的數組不被視爲對象
- 19. 作爲社區服務的計算機科學
- 20. 網頁計算機科學中的MAP是什麼?
- 21. 計算機科學中複用術語的含義是什麼?
- 22. 爲什麼Apache的公共數學基於int分數?
- 23. 將數字轉換爲科學計數法並獲得指數
- 24. 在java中計算科學數字
- 25. 什麼是與計算機科學相關的非理性數字?
- 26. 在matlab中計算科學數字的尾數和指數
- 27. 爲什麼IBOutlet保留計數是2
- 28. 計算機科學老人
- 29. 計算機科學分類
- 30. 計算機科學界?
這只是作者的說法。 「計算機科學」是一個廣泛的領域,並沒有這樣的一攬子聲明。這本書是什麼? –