為了便於我們分析,讓我們把生活中各種複雜糾紛的戀愛故事抽象成乙個簡單的數學過程。假設根據過去的經驗,mm 可以確定出今後將會遇到的男生個數,比如說 15 個、30 個或者 50 個。不妨把男生的總人數設為 n。這 n 個男生將會以乙個隨機的順序排著隊依次前來表白。每次被表白後,mm 都只有兩種選擇:接受這個男生,結束這場「徵婚遊戲」,和他永遠幸福地生活在一起;或者拒絕這個男生,繼續考慮下乙個表白者。我們不考慮 mm 腳踏兩隻船的情況,也不考慮和被拒男生破鏡重圓的可能。最後,男人有好有壞,我們不妨假設 mm 心裡會給男生們的優劣排出個名次來。
聰明的 mm 會想到乙個好辦法:先和前面幾個男生玩玩,試試水深;大致摸清了男生們的底細後,再開始認真考慮,和第乙個比之前所有人都要好的男生發展關係。從數學模型上說,就是先拒掉前面 k 個人,不管這些人有多好;然後從第 k+1 個人開始,一旦看到比之前所有人都要好的人,就毫不猶豫地選擇他。不難看出,k 的取值很講究,太小了達不到試的效果,太大了又會導致真正可選的餘地不多了。這就變成了乙個純數學問題:在男生總數 n 已知的情況下,當 k 等於何值時,按上述策略選中最佳男生的概率最大?
對於某個固定的 k,如果最適合的人出現在了第 i 個位置(k < i ≤ n),要想讓他有幸正好被 mm 選中,就必須得滿足前 i-1 個人中的最好的人在前 k 個人裡,這有 k/(i-1) 的可能。考慮所有可能的 i,我們便得到了試探前 k 個男生之後能選中最佳男生的總概率 p(k):
用 x 來表示 k/n 的值,並且假設 n 充分大,則上述公式可以寫成:
(應該是p(x))
對 -x · ln x 求導,並令這個導數為 0,可以解出 x 的最優值,它就是尤拉研究的神秘常數的倒數—— 1/e !
也就是說,如果你預計求愛者有 n 個人,你應該先拒絕掉前 n/e 個人,靜候下乙個比這些人都好的人。假設你一共會遇到大概 30 個求愛者,就應該拒絕掉前 30/e ≈ 30/2.718 ≈ 11 個求愛者,然後從第 12 個求愛者開始,一旦發現比前面 11 個求愛者都好的人,就果斷接受他。由於 1/e 大約等於 37%,因此這條愛情**也叫做 37% 法則。
不過,37% 法則有乙個小問題:如果最佳人選本來就在這 37% 的人裡面,錯過這 37% 的人之後,她就再也碰不上更好的了。但在遊戲過程中,她並不知道最佳人選已經被拒,因此她會一直痴痴地等待。也就是說,mm 將會有 37% 的概率「失敗退場」,或者以被迫選擇最後一名求愛者的結局而告終。
37% 法則的效果究竟如何呢?我們在計算機上編寫程式模擬了當 n = 30 時利用 37% 法則進行選擇的過程(如果 mm 始終未接受求愛者,則自動選擇最後一名求愛者)。編號越小的男生越次,編號為 30 的男生則表示最佳選擇。程式執行 10000 次之後,竟然有大約 4000 次選中最佳男生,可見 37% 法則確實有效啊。
計算機模擬 10000 次後得到的結果
這個問題由數學家 merrill m. flood 在 1949 首次提出,這個問題被他取名為「未婚妻問題」。這個問題的精妙之處在於,在微積分界叱吒風雲的自然底數 e,竟也出人意料地出現在了這個看似與它毫不相關的問題中。不知道此問題發表後,geek 男女間會不會多了一種分手的理由:不好意思,你是那 37% 的人⋯⋯
第三天,優化美女選妃等
首先弄清楚了四個許可權修飾符,private,default,protected,public。1 private private可以修飾成員變數,成員方法,構造方法,不能修飾類 此刻指的是外部類,內部類不加以考慮 被 private修飾的成員只能在其修飾的本類中訪問,在其他類中不能呼叫,但是被 p...
選羊選車問題
有三個門,兩個羊乙個車。嘉賓選擇乙個門後,主持人開啟另外兩個門中的乙個,門裡是羊。嘉賓改選或者不改選。門後有車就中大獎。否則什麼都沒有。記得當年做這個題目的時候就與小李子和瘋子爭論的不休。當時時至今日仍然不能完全確定這是個概率問題。其實這個不完全是概率問題 因為概率中只是考慮了出現結果的可能性。但是...
選猴王問題
一群猴子有50只,坐在一起選猴王,每只猴子都有乙個編號1 50。從1號猴子開始報號,報到7號則退出 下只猴子繼續從1開始報,依次迴圈,則最後的乙隻猴子為猴王。試求出這只猴子的編號。include includetypedef int elemtype typedef struct lnode lis...