符號化和頭腦演算法複雜度

2021-10-19 21:33:30 字數 1015 閱讀 6486

最近有乙個有趣的想法,和大家分享一下。

如果把我們自己也當成類似計算機的存在(或者說,現在我們專注於思考自己類似計算機的那一面),那麼思維、想法也有時間複雜度、空間複雜度嗎?執行在頭腦裡的 「演算法」 有沒有優劣……

上面的想法,認真說,十分無聊,有點庸俗。所以,我還是擺脫無聊的背景,和你說說有意思的。

我的觀察是,「空間複雜度」 對頭腦演算法的有效性影響很大!頭腦有些像乙個魔法池,裝入一些思考物件,產生它們之間的關係。頭腦似乎可以並行思考某個物件的方方面面,產生一種觀感,引導你進一步思考。但比起電腦,人腦的 「記憶體」 似乎是很小的,就是說,我們雖然可以同時思考乙個物件的方方面面,但能同時思考的物件的數量很少,2 - 3 個大概是極限了。試圖裝入更多物件會感到苦澀和勉強。

我為什麼認為上述思考值得寫出來,而不是一堆小朋友說的胡話呢?因為我發現上述解釋和數學等思想的發展有契合之處:

推崇符號化

方程,就是小學初中學的方程,為什麼對解題特別有用(當然也有其他作用)?我再強調一次我對頭腦效能的猜想:頭腦的計算速度並不慢(而且是全方位多維度平行計算)但記憶體特別有限。這導致了兩個結果:

能同時思考的物件的性質不能太複雜。

思考過程只能是尾遞迴的(不然,「剛才我們說到哪了?我們是怎麼聊到這個話題的?」),不然邏輯深度很淺(因為函式呼叫棧太小了!)。

符號化很好地緩解了上述問題。

思考乙個符號以及符號的運算規則(或者表示式的變換規則)比思考符號背後的含義輕鬆。因為符號所代表的物件有可能(往往)是乙個比符號複雜很多的物件。

可以方便地寫在紙上。用上外存了 ?

不用我說,你也應該想過:方程的威力就在於,不用每次移項、合併都思考 「這意味著什麼呢?」。

啦啦啦啦說了很多。我也不去管我有沒有遺漏什麼沒說,因為你肯定已經大致了解我想說什麼了。

結論就是:

不要難為自己。面對複雜的問題,尤其是一開始的時候,你就是沒法把它一下子裝進腦子裡。這時候你應該 「品嚐恐懼」,認真感受問題的邏輯形狀。智。

重視符號化。減少對含義的思考,生活會更輕鬆。慧。

演算法複雜度分析中的符號( )

讀音 theta 西塔 既是上界也是下界 tight 等於的意思。讀音 big oh 歐公尺可榮 大寫 表示上界 tightness unknown 小於等於的意思。讀音 small oh 歐公尺可榮 小寫 表示上界 not tight 小於的意思。讀音 big omega 歐公尺伽 大寫 表示下界...

演算法複雜度 時間複雜度和空間複雜度

1 時間複雜度 1 時間頻度 乙個演算法執行所耗費的時間,從理論上是不能算出來的,必須上機執行測試才能知道。但我們不可能也沒有必要對每個演算法都上機測試,只需知道哪個演算法花費的時間多,哪個演算法花費的時間少就可以了。並且乙個演算法花費的時間與演算法中語句的執行次數成正比例,哪個演算法中語句執行次數...

演算法複雜度 時間複雜度和空間複雜度

演算法複雜度 時間複雜度和空間複雜度 關鍵字 演算法複雜度 時間複雜度 空間複雜度 1 時間複雜度 1 時間頻度 乙個演算法執行所耗費的時間,從理論上是不能算出來的,必須上機執行測試才能知道。但我們不可能也沒有必要對每個演算法都上機測試,只需知道哪個演算法花費的時 間多,哪個演算法花費的時間少就可以...