log base 10函數的複雜程度是多少?日誌功能的複雜性是什麼?
回答
這真的取決於你想要計算什麼值的域的對數。
對於IEEE雙打,許多處理器可以在單個彙編指令中取對數;例如,x86具有FYL2X和FYL2XP1指令。雖然通常這樣的指令將只需要對數在一些固定的基礎上,它們可以被用於通過使用這樣的事實採取任意的鹼基對數的是
日誌一個 B =登錄Ç B /登錄 c a
通過簡單地取兩個對數並找到它們的商。
對於一般整數(任意精度),可以使用重複平方與二分搜索相結合,僅使用O(log log n)算術運算取對數(每次對一個數字進行平方運算時,指數加倍,即您只能將數字記錄日誌平方n次,然後才能超過其值並可執行二分查找)。使用some cute tricks with Fibonacci numbers,您只能在O(log n)空間中執行此操作。如果你正在計算binary logarithm,你可以使用一些可以使用位移的可愛技巧來在更短的時間內計算值(儘管漸近複雜度是相同的)。
對於任意實數,邏輯更難。儘管我承認我不熟悉這樣做的方法,但可以使用牛頓法或泰勒級數來計算一定精度的對數。然而,你很少需要這樣做,因爲大多數實數都是IEEE雙精度值,在這種情況下有更好的算法(甚至硬件指令)。
希望這會有所幫助!
對於整數,通常還有一個指令(或一個短序列)來執行'CTZ(x &(x - 1))'或'wordsize - LZC(x)') - 但AFAIK對時間複雜度根本沒有幫助(只是實際速度) – harold
@ harold-雖然只適用於二進制對數。 – templatetypedef
@templatetypedef你可以乘以一個常數因子來獲得任何其他基數的對數,就像你剛剛演示的那樣。 :) –
- 1. 這些功能的複雜性是什麼?
- 2. JavaScript中JSON.parse()的複雜性是什麼?
- 3. C++中set_intersection的複雜性是什麼?
- 4. btree的插入複雜性是什麼?
- 5. OrderedDictionary的複雜性是什麼?
- 6. dist()的複雜性是什麼?
- 7. Exists C#的複雜性是什麼?
- 8. NSComparisonResult的複雜性是什麼? [Post interview]
- 9. `sort_by`的複雜性是什麼?
- 10. log4j - 適應性日誌級別 - 功能
- 11. 什麼是提交日誌?
- 12. SonarQube使用什麼樣的複雜性?
- 13. 爲什麼是一次性功能?
- 14. 什麼是複雜網絡應用程序功能測試的最佳工具
- 15. SonarQube版本中的嵌套功能複雜性問題修復?
- 16. 在排序的std :: list中搜索的複雜性是什麼?
- 17. 什麼是使用功能方式處理日誌消息的最佳做法
- 18. 什麼時候MongoDB(啓用日誌功能)調用fsync()?
- 19. inplace_merge:是什麼導致N * log(N)與N-1的複雜性?
- 20. 爲什麼pop_heap的複雜性是O(2 * log(N))?
- 21. 這種方法的大O複雜性是什麼?
- 22. 這些Dictionary方法的複雜性是什麼?
- 23. 用於計算SourceMonitor中複雜性的參數是什麼?
- 24. vector :: clear未指定的複雜性是什麼?
- 25. C++ STL中hash_set :: size()的複雜性是什麼?
- 26. 什麼是FP-Growth算法的時空複雜性?
- 27. 解釋這些函數的複雜性是什麼?
- 28. 什麼是Control.Monad.Writer for w〜[a]的複雜性?
- 29. Ruby中Array.new(n,x)的複雜性是什麼?
- 30. 嵌套循環這個函數的複雜性是什麼?
這功課嗎? –
這不會取決於所使用的算法嗎?查找表例如是O(1)。 – Thilo
@Tony:[No](http://math.stackexchange.com/questions/61759/project-euler-problem-25) –