減小時間複雜度——尤拉的37%法則

weixin_33807284發表於2019-02-06

前段時間, 我兄弟揹著我偷偷脫單了......他爹媽說神馬現在該好好學習亂七八糟的......

忽想起37%法則, 遂與諸君分享:

我們可能都聽過掰玉米的哲學故事: 一片玉米地, 你需要從裡面摘一個最大的玉米。但只能摘一次, 而且不能回頭。

你第一次走進玉米地, 發現很多大玉米, 很快摘下了你看到的第一個比較大的玉米棒子, 然後繼續往前走, 然而越走越失望, 你沮喪地發現前面還有很多比你手裡的大得多的玉米棒子。但是你已經不能夠選擇了。這種選擇, 名字叫“後悔”。

你第二次走進玉米地, 同樣也發現了很多很好的玉米棒子, 但是這一次你吸取“後悔”的教訓——前面一定有更好的。你一直向前走, 直到發現自己差不多走出了玉米地。按照規則, 你回不去了。就這樣, 你錯過了最好的玉米棒子。這種選擇, 名字叫“錯過”。

這個問題, 不正是我們面臨的擇偶, 找工作等抉擇問題簡化版嗎?

誰都不想"後悔", 誰也不想"錯過", 我們該選擇何種策略去優化我們的生活呢?

數學家尤拉前輩, 給出了一個重要的數字:37%

也就是說:
對於選擇玉米棒子的問題, 要按數字37%將玉米地分成兩個階段:

前37%的路程為第一階段。在這個階段, 你只看不選, 就是認真觀察比較這個階段最大的玉米棒子, 記住那個玉米棒子的大小。

等過了37%, 進入第二階段。從這個階段開始, 你一旦遇到一個比第一階段那個最大的玉米棒子還要大的玉米, 或者差不多大的玉米, 就毫不猶豫地選擇它。

分兩個階段這個策略和37%這個數字, 或許又是數學家尤拉某次旅行時算出來的, 這實際上是一個隨機選擇優化問題——這個辦法叫37%法則。

37%的規則並不能保證你一定能選擇到最大的玉米, 因為在這片玉米地裡, 玉米棒子大小是隨機出現的。在這種隨機出現的情況下, 它是一個能夠選到一個足夠大玉米的好辦法。

從概率的角度來講
如果你看了不到37%的玉米就開始選擇, 你將來很可能會後悔
如果你看了超過37%的玉米才開始選, 你將來可能會錯過

我們來看下37%的求解過程:

問題提出:

假設這片玉米地有n個玉米
數學模型上說
就是先拒掉前面 k 個玉米(不去管這些玉米有多大)
然後從第 k+1 個玉米開始, 一旦看到比之前所有玉米都要大的, 就毫不猶豫地選擇它

不難看出, k 的取值很講究, 太小了達不到試的效果, 太大了又會導致真正可選的餘地不多了。
這就變成了一個純數學問題: 在玉米總數 n 已知的情況下, 當 k 等於何值時, 按上述策略選中最大玉米的概率最大?

如何優雅地求出最優的 k 值?

k是定值, 如果最適合的玉米出現在了第 i 個位置, k的概率記作P(k)

$$ p(k)=\sum_{i=k+1}^{n}\frac{1}{n}*\frac{k}{i-1}=\frac{k}{n}\sum_{i=k+1}^{n}\frac{1}{i-1} $$

x表示 k/n 的值, 並且假設n充分大, 則上述公式為:

$$ P(k)=x\int\nolimits_1^x \frac{1}{t} dt=-x*lnx $$

-x·lnx 求導, 並令這個導數為 0, 可以解出 x 的最優值, 它就是尤拉研究的神祕常數的倒數—— 1/e

由於 1/e 大約等於 0.37(e ≈2.718281828459), 因此這條法則也叫做 37% 法則。

現在, 你知道了37%法則是你作為一個理性的人在這個不確定的世界中所能做的最佳策略, 那麼你可以無怨無悔, 沒有那麼多糾結和痛苦了。

比如買房子和擇偶, 都可以應用37%法則。

對於買房子, 這個問題的條件如下:

你隨機遇到各種房子, 但你只打算買一個。
遇到一個房子, 如果你買下來, 這個房子就是你的。
如果你選擇不買, 很快別人就會把它買走, 你沒有第二次機會。
你應該給自己設定一個看房總數的限度, 或者一個時間期限。(比如在一個月內一定要買到房子)
根據37%法則, 將一個月時間分為兩個階段。前11天為第一階段, 這個階段只看不買, 瞭解市場上的情況, 你喜歡和不喜歡的房子。這個階段你一定要記住你最滿意的房子。

等從第12天開始, 你一旦遇到一個比第一階段那個最滿意的房子要好, 或者類似的, 就要毫不猶豫買下來。

對於擇偶, 同樣可以運用37%法則。比如, 一個女性從20歲開始找物件, 設定的目標是30歲之前結婚, 那麼根據37%法則, 兩個階段的分割點就在23.7歲。

在20歲到23.7歲之間是觀察期, 只交往不結婚, 但是必須記住在交往的男生中最喜歡的那一個。23.7歲之後是決策期, 一旦遇到一個比那個人還好或者差不多好的男生, 就應該選擇和他結婚。

但是對於擇偶, 這個數學模型會更復雜, 因為假定的是你選擇他, 他就必須答應。實際生活中可能不會如此, 如果有被拒絕的可能性, 那麼分割點就不是37%

假設被拒絕的可能性是一半, 那麼要把37%變成25%。也就是說, 條件不好的人要縮短觀察期。

如果你的條件非常好, 就算一開始你錯過了一個人, 過了一段時間去找他, 他還有可能答應你的話, 那麼你的觀察期應該延長。假設這個同意的可能性是一半, 那麼你可以把觀察期延長到61%。

總的來說, 條件好就多等等, 不要急於決定;條件差就趕緊行動。數學模型計算的結果, 跟我們的常識是相符合的。

這個37%法則, 說的是面對一個不確定的世界, 在你根本不知道命運會怎樣的情況下, 所能採取的最佳策略。

在生活中, 很多人就敗在不知道什麼時候停止選擇。理性的人, 應該知道什麼時候停止。因為, 當選擇之後更重要的是去經營我們的選擇。

但我是個感性的人。。。。。。

祝諸位找到自己玉米棒:

clipboard.png

相關文章