1樓:
不,對於任意演算法的話,不可以。
人腦也不可以,這是乙個「不可知」的事情。
除非你把問題限制在某些特定的演算法,否則這是圖靈不可計算的。
因為:停機問題是不可計算的
所以你不能判定演算法的執行時間是否是無窮大。
所以你不能給演算法確定時間漸進上界,因為你甚至不知道這個上界是否是「無窮大「,更別提確定它的具體形式了。
2樓:Dour
你專門在電腦上寫乙個算複雜度的程式當然能算複雜度,但是基本沒人這麼做。
因為電腦主要還是執行人的命令的,人才是應該辨別哪個命令快,哪個慢,選取最合適的命令讓電腦執行。試想一下,人類既然已知各種排序演算法的複雜度,(如果求快的話)那為何不直接找乙個最快的排序演算法,讓電腦執行。難道讓電腦耗費更多的資源把所有的排序演算法的複雜度求出來,讓電腦自己做決定嗎?
這個就多此一舉了。
當然當人們想讓電腦處理更複雜,資料量更大的事情的時候就有必要讓電腦這麼做了,這個就需要求助於AI和機器學習的演算法了。
3樓:
這叫Rice's theorem
不要說具體的數量級,電腦連是有限還是無窮都算不出來,這叫停機問題。
人腦能算出來是因為人腦可以構建分析框架可以去分析,而計算機目前無法自動構建。但人腦也不是什麼都能算出來,有大量的近似模糊甚至錯誤之處。
4樓:tripack45
人腦也不能自動給出Big O。你把帶路徑壓縮的並查集給乙個沒有見過的人,有多大可能這個人一口氣能給出最緊的複雜度?不太可能吧。
但是不代表人不能給出乙個正確(但不一定最緊)的bound。
計算機自動給出複雜度Bound的方法並不是沒有,比如Jan Hoffman的工作Resource Aware ML (http://
raml.co/
) 不僅能給出asymtopic bound, 更能給出帶有具體的Bound,不過這個bound不一定是緊的就是了。
5樓:
人腦也不能算出任意程式的複雜度啊.....
相應的,寫的程式也可以算出一些程式的複雜度...
停機問題說的是不存在這樣的程式,能夠判定任意程式是否在有限次內結束...它沒有不允許我們寫乙個程式,判定一部分程式是否結束...
為什麼嚴格的多體波函式不能計算出超導態,而簡單的 BCS 平均場能得到超導態?
樹袋熊 1,確實可以把多體波函式寫成擁有序參量的形式。我們應該用U 1 相位標記這組多體波函式,假設為 每個波函式都給出乙個非零的序參量,且其對應的U 1 相位為 因為相位有無窮多種,這種波函式也就有無窮多種。2,理論或數值上取到的波函式很難擁有非零序參量。因為基態是簡併的,一般來說算出來的具體多體...
值是什麼?它是怎麼被計算出來的呢?
喚醒感覺和意識 是乙個無理數,它約等於3.14159265,是乙個圓的周長與它的直徑之比.計算圓周率的方法有很多,下面就簡單地介紹幾種 1.正多邊形的邊數越多,它看起來就越接近圓.根據這一結論,我們可以同時做出乙個圓的內接正n邊形和外切正n邊形,據說當n的值等於192時,我們就能夠得到 的近似值為3...
為什麼人們計算年齡常用虛歲
林佳樹小花 看到網上有說說虛歲是把媽媽懷孕的時間也算進去,這是古人的智慧型之類的云云,我想說這是不對的。虛歲的演算法生出來算一歲,過了春節加一歲。但是有一部分人生日小,比如在春節前幾天生,生下來虛一歲,過幾天就虛兩歲了,按照前面這個邏輯,難帶這些人被懷孕了24個月不成。所以虛歲跟媽媽懷孕並沒有關係,...