![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI0gTMx81dsQWZ4lmZf1GLlpXazVmcvwFciV2dsQXYtJ3bm9CX9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCMy81dvRWYoNHLwEzX5xCMx8FesU2cfdGLwMzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5iMxITN1UDO4UTMmhTOkJWMzYzXxUTNygDMwEzLclDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.png)
是不是很酷
你知道什麼是洋芋悖論嗎?
洋芋悖論來源于這樣一個簡單的數學問題:
你有 100 公斤的洋芋,經過測量,這些洋芋中含水量是 99%。你把他們放在陽台上,一晚過後,再測量,這些洋芋的含水量變成了 98%。也就是蒸發了 1% 的水分。
問:現在,這些洋芋的總重量是多少?
嚴格的計算可能需要紙和筆。在這裡,為了測試大家對數字的直覺,我給出幾個選項,大家可以試試,不經過計算,選擇一個你認為最接近的正确答案是多少?
A. 99 公斤
B. 98 公斤
C. 50 公斤
大多數第一次接觸這個問題的童鞋,都會因為正确答案而感到驚訝。因為正确答案是:
50 公斤!
你猜對了嗎?
要想計算這個問題,也非常簡單,隻需要最初等的解方程就可以。
初始的時候,100 公斤的洋芋中,含有 99% 的水分,也就是有 99 公斤的水分。在陽台放一晚上以後,隻含有 98% 的水分,也就是有一些水分被蒸發了。我們設蒸發的水分品質是 x 公斤。
是以,一晚上以後,剩下的水分就是 99 - x 公斤。
而現在,所有的洋芋的品質,也不再是 100 公斤了,而變成了 100 - x 公斤。
現在,這 100 - x 公斤的洋芋中,水分是 98%,我們就可以列出式子:
當然,98% 就是 0.98,為了計算友善,我們在方程中使用 0.98。
下面就是一個标準的解方程問題了,國小生都會算:
這個方程的解是 50。換句話說,一晚上要蒸發掉 50 公斤的水,也就是所有洋芋重量的一半,才能讓洋芋的水分含量從 99%,下降到 98%。此時,剩餘的洋芋,從最初的 100 公斤,變成了隻有 50 公斤了。
怎麼樣?是不是和你的直覺不相符?
這就是洋芋悖論。
洋芋悖論本身并不是一個可以推導出相悖結論的悖論,而是這個問題的解,和大多數人的直覺是相悖的。
洋芋悖論說明了什麼?
首先,就是人類對數字的感覺,在很多時候,都是不準确的。尤其是當涉及到百分比的時候。
在統計學上,大名鼎鼎的辛普森悖論,在本質上也是這樣一個和百分比相關的悖論。因為辛普森悖論太有名了,有很多文章介紹,是以我就不專門寫了,有興趣的同學,可以在網際網路上搜尋一下。
是以,當我們關注一個事物的時候,一定不能僅僅關注百分比,而要看一下百分比背後的真實數字到底是多少。
比如,程式員在做性能優化的時候,可能會通過一些性能分析工具,看到不同的函數(或者子過程)在每次請求的運作過程中消耗的時間占比。
假如有一個函數 f(),在整個過程中,消耗的時間高達 99%,那麼顯然,我們要優化一下這個 f() 了。
可如果大家通過努力,絞盡腦汁,發現隻能把 f() 消耗的時間占比優化到 98%,看起來似乎隻有 1% 的優化,但不要氣餒。因為,洋芋悖論告訴了我們:你已經将整個程式的執行時間,優化了整整一倍。
是以,我們不能緊緊盯着百分比看,而一定要看實際的執行時間,到底有了怎樣的變化。
當然,可能會有一些競争對手來攻擊我們。他們會說,這沒什麼了不起,因為這個工作隻将 f() 優化了 1%。此時,請毫不猶豫地告訴他們,什麼是洋芋悖論。
這些人,不是傻,就是壞。
另一方面,洋芋悖論告訴了我們:擠掉水分是多麼地困難。
擠掉 1% 的水分,竟然意味着要擠掉占總品質一半的水分!
實際上,我們可以再構造這樣一個問題:100 公斤洋芋,其中水分占比是 99.9999%,在外面晾一晚上,讓水分變成 99.9998%。也就是,隻擠掉 0.0001 % 的水分。問,剩下的洋芋品質是多少?
相信通過上面的分析,大家都會計算了,這還是一個初等解方程的問題。方法和上面一樣,隻是具體數字有所替換:
是的,最終的答案還是 50!
這一次,為了擠掉 0.0001 % 的水分,我們也要擠掉一半品質,即 50 公斤的水分!
為什麼?因為從數學的角度看,幹貨的含量太少了。這兩組資料的共同點其實是:整個過程,幹貨占比都翻倍了,隻不過一個是從 1% 的幹貨,變成 2% 的幹貨;一個是從 0.0001% 的幹貨,變成 0.0002% 的幹貨。
當幹貨占比很少的時候,增加一點點的幹貨,減少一點點的水分,都意味着幹貨占比的增倍。這也就意味着,我們需要擠掉大量的水分——比大多數人想象的多得多的水分。
但是,如果幹貨占比本身很大,事情就不一樣了。
大家可以計算一下,如果 100 公斤洋芋,其中水分占比是 50%,也就是幹貨占比也是 50%,幹貨占比其實似乎也并沒有很大。但此時,擠掉 1% 的水分,也就是讓水分占比達到 49%,對應擠掉水分的重量是多少?
答案是:隻需要擠掉 1.96 公斤左右的水分就可以了。計算過程如下:
有興趣的童鞋可以試一試,如果初始水分的占比更少,幹貨的占比更高,為了擠掉 1% 的水分,我們實際要擠掉的水分的品質會更少。
結論:學習也好,做人也罷,不要太水,多關注幹貨。
否則,等真地想要擠掉水分的時候,會很費勁。可能比大家想象的,要費盡得多。
不要落進洋芋悖論的陷阱。
大家加油!:)
歡迎關注我的公衆号“五分鐘學算法”,如果喜歡,麻煩點一下“