最優停止演算法談程式設計師的婚戀選擇

2021-10-01 07:06:02 字數 2432 閱讀 1071

最優停止問題又稱為秘書問題,相親問題,衍生出了 37% 法則。

一組資料在單向流動過程中,你希望選擇這組資料中較好的乙個,但是這組資料一旦流動經過你的眼前,你需要在這一瞬間選取它或者讓資料繼續流動等待選取下乙個資料,一旦你選取了這個資料,那麼這一組資料就會消失,也就是不能更換已經做出的選擇。

當我們在完全不了解這一組資料的情況下,我們在何時做出資料選取才能保證自己選取的資料總是比較好的呢?或者說我們在哪乙個點做出反饋才能保證我們始終占有優勢呢?

假如程式設計師 abcnull 在 2020 年會遇到妹子 a,在 2021 年會遇到妹子 b,在 2022 年會遇到妹子 c,假設 abcnull 一生只會遇到這三個能讓他心動的妹子,他該如何選擇才能選到那個最好的老婆呢?

a,b,c 三個妹子都是隨機的,所以 abcnull 隨便選擇的話,選到那個最好的妹子的概率是 1/3,選到最差的妹子也是 1/3,選到一般般的妹子還是 1/3

可惜 abcnull 是一名不喜歡不確定因素的程式設計師,他喜歡可控的事物,因此他打算採用一種自己可掌控的策略,這種策略如下:

2020 年遇到 a 時,不選她,在 2021 年遇到 b 時,觀察 b 是否比 a 要更優秀,如果是就立馬決定是她,若不是就只能等到 2022 年直接選擇 c 了。

採取這種策略通過排列組合我們會有如下發現:(加粗表示採取上述策略之後的最終選擇)

a(good) b(middle)c(bad)

a(good) b(bad)c(middle)

a(middle)b(good)c(bad)

a(middle) b(bad)c(good)

a(bad)b(good)c(middle)

a(bad)b(middle)c(good)

這樣我們會發現,abcnull 選到最棒的女孩的概率是 1/2,選到次一點的女孩的概率是 1/3,選到最差的女孩的概率是 1/6,這種選擇策略可比瞎選要好多了,因為瞎選可是有 1/3 的概率選擇到最差的女生

按照這種策略,我們需要把人數稍微推廣一下,因為 abcnull 這一生遇到的妹子可遠比 3 人要多的多呢!我們採用排列組合的知識然後稍微做個統計:

abcnull 一生遇到心儀物件的人數

選到最棒的人的概率

資料還是不夠多,不過也能看出近似是一條曲線,排列組合求這個最優解的概率太繁瑣了,後續的資料我們打算使用高等數學的知識計算,測到 10000 人時已經近似是 37%。

現在我們已經知道了隨著 abcnull 遇到的人數增加,他選到最棒的妹子的概率大約是 37%(實際上還要低一點),那他最好從前多少個人開始就需要做選取的決定呢?

現在我們打算 abcnull 這一生會遇到 n 個可愛的妹子,他先觀察前 k 個妹子管她是白富美還是土肥圓全都直接 pass,從 k+1 人起,一旦遇到乙個比前 k 個都贊的女孩就果斷選擇她,下面開始計算:

p(k) = 1/n × k/(n-1) + 1/n × k/n + 1/n × k/(n+1) + ··· + 1/n

然後我們提乙個 k/n 化簡,在 n 比較大時候,我們發現 p(k) 是 xy = 1 在 (k/n, 1) 分割成寬為 1/n 小區間後的黎曼和,最後求解 p(k) 約為 0.368,近似取整為 37%

我們可以發現,當 n 足夠大時候採用最優停止演算法選到的最棒女孩的概率永遠近似 37%,若是瞎選那概率就會隨人數的增加而下降,那 n 很小的時候呢?n 很小的時候,不管你怎麼選概率差別就不大了,所以說宅男宅女們要是遇到的人太少了,就不用選了,感覺差不多就行了。

乙個程式設計師的一生會與 8w 人產生交集,中國絕大部分程式設計師都生活在國內,世界男女比例大致是 1:1,由於中國男多女少的局面,在男女比始終保持不變的前提下,中國男女比為 1:0.93,也就是會與大約 38549 名女性有交集,但實際上這其中還有一部分是親屬,假如乙個男孩想在 20~40 歲這個年齡段找物件,由於中國男性平均年齡 72 歲,每年會遇到 535 個女孩左右,那麼在 26 歲起這個年齡只要遇到乙個比之前都好的就果斷抓住她。如果乙個男孩不想成為大齡剩男再去找物件他只想在 20~30 歲之間找物件,他就需要在 23 歲起開始找物件最好。對於女性來講,由於存在育齡的緣故,最好得在 20~49 歲間找物件,如果乙個女孩不考慮年齡大不好找或者不在意年齡大去找物件的話,她在 31 起就可以開始考慮找物件了。如果乙個女孩也介意年齡太大去找的話,想在 20~28 歲間找物件,那麼她就應該在 22 歲 4 月初開始就需要物色物件了,一旦找到乙個比之前認識都好的人就果斷抓住他,這就是最佳選擇的策略。

隨談 程式設計師的堅持與選擇

時代更快 快生活 對比中形成的 讓生活慢下來 枯燥一點,降低快樂水平。選擇比努力更重要?想要開掛的人生缺一不可 堅持本身比堅持這件事更重要,糟糕的堅持比放棄強 維持了堅持的身份,要讓自己確定自己有這個身份,有自信跟別人說 想得到關注,被需要 自己真心的想要,而不是外界的壓力 人生理想,目標意識,發心...

程式設計師的婚戀性心理健康規範

性心理健康的規範 程式設計師天天從事面對電腦.不經常運動.性功能方面大多數都不是非常好.有必要普及一下。心理健康方面的知識。給程式設計師的戰友們做乙個參考.保證自己男人本色第一位 研討性心理的意圖首要是為了保護和促進性心理健康,因而,首要有必要清晰啥是性心理健康。曩昔,關於性心理和性行動的正常與否,...

程式設計師之路的選擇

寫一些自己從做開發到現在一路走來所看到的種種。不知是否能幫助那些正處於起步或者半路迷茫的朋友。以下內容只代表個人觀點,有意義的可以吸收,無趣的可以拋棄。因為我一直在搞.net俱樂部,而且我們山西.net俱樂部經營的還算不錯。500人的群滿員了,再加人只有把那些不參與交流的朋友給請退了。經常能在群裡有...