O(n logstar(n))和O(n)之間是否存在真正的複雜度? 我知道O(n sqrt(logstar(n)))和其他類似的函數在這兩個之間,但我的意思是不是由logstar(n)組成的東西。O(nlog * n)和O(n)之間?
回答
是的,有。最着名的例子是Ackermann inverse function α(n),其增長速度比log * n慢得多。它顯示在不相交集森林數據結構的上下文中,其中每個操作的攤銷成本爲O(α(n))。
您可以將log * n看作您需要將日誌應用到n以將該值降低到某個固定常量(例如2)的次數。然後,您可以將其推廣到log ** n,這是您需要將log *應用於n以將值降至2的次數。然後可以定義log *** n,log **** n ,log ***** n等以類似的方式。通常將α(n)的值作爲您需要將日誌數** ... * n中的值減至2,因此其增長速度比迭代對數函數慢得多。
直觀地說,你可以把日誌的n爲冪(重複乘法)的倒數,數* N爲tetration(重複冪)的倒數,數** n的pentation(重複迭代冪次)的倒數,等等.Ackermann函數將n次冪的n階泛化有效地應用於數n,所以它的逆矩陣對應於需要應用的指數級別有多高。這導致了令人難以置信的緩慢增長的功能。
我曾經見過的最滑稽的慢速增長函數在一個嚴肅的語境中使用是α *(n),您需要將阿克曼反函數應用到數字n以將其降到某些值固定不變。這是幾乎不可思議的多大的輸入,你必須把這個函數返回接近,例如10。如果你很好奇,the paper that introduced it is available here。
謝謝,我絕對會讀這篇論文!播放樹木非常酷! –
- 1. O(nlogn)+ O(n),O(nlogn)和O(nlogn + n)之間的關係是什麼?
- 2. 代碼O(nlog(n))的T(n)如何?
- 3. 你如何看出O(log n)和O(n log n)之間的差異?
- 4. O(log_2(n))= O(log_10(n))?
- 5. Big O - O(N^2)or O(N^2 + 1)?
- 6. 證明最大(O(f(n)),O(g(n)))= O(max(f(n),g(n))
- 7. 時間複雜度 - O(n^2)到O(n log n)搜索
- 8. 時間複雜度O(N日誌(log n)的)+ N O(L)
- 9. 大O符號 - O(n日誌(N))對O(的log(n^2))
- 10. 大O複雜度O(n日誌n)與O(n日誌m)
- 11. O(N + m)和O(NM)之間的複雜性計算差異
- 12. 證明O(max {f(n),g(n)} = O(f(n)+ g(n))
- 13. 時間複雜度:O(logN)或O(N)?
- 14. Python腳本:如何判斷在O(N)或O(N^2)時間?
- 15. 下面的函數是O(n)時間和O(1)空間,其中n = | A |?
- 16. 在漸近分析中,證明:O表示大O. O(f(n)+ g(n))= O(max {f(n),g(n)})
- 17. 大O符號 - 爲什麼是O(n^2/4)= O(N^2)
- 18. 比較O((logn)!)和O(2^n)
- 19. 在O(n)
- 20. 在O(N)
- 21. 大O N^2(日誌N)
- 22. 是log(n!)= O((log(n))^ 2)?
- 23. 證明5^n = o(n!)
- 24. 證明lg(n!)= O(n!)
- 25. 哪裏可以找到O(n^2)和O(n)等的含義?
- 26. 查找具有O(n)的時間和O(1)空間
- 27. 找到O(1)的空間和O(n)的時間
- 28. 顯示n^2不是O(n * log(n))?
- 29. f(n)= N的大O! + 2^N
- 30. BIG O複雜度n或n^2log(n)
1