1. 程式人生 > >趣談演算法 --- 從程式猿把妹說起

趣談演算法 --- 從程式猿把妹說起

趣談演算法中幾個常用概念
———從教你追妹子說起

1.動態規劃
你追一個MM的時候,需要對該MM身邊的各閨中密友都好,這樣你追MM這個問題就分解為對其MM朋友的問題,只有把這些問題都解決了,最終你才能追到MM。
因此,該問題適用於聰明的MM,懂得“看一個人,不是看他如何對你,而是看他如何對他人”的道理,並且對付這樣的MM總能得到最優解。但缺點是開銷較大,因為每個子問題都要好好對待……

2.貪心演算法
你追一個MM的時候,從相識到相知,每次都採用最aggressive的方式,進攻進攻再進攻!從不採用迂迴戰術或是欲擒故縱之法!目標是以最快的速度確立兩人的關係。
該法優點是代價小,速度快,但缺點是不是每次都能得到最優解……

3.回溯演算法
追一個MM,但也許你還是情竇初開的新手,不知道如何才能討得MM的歡心,於是你只好一條路一條路的試,MM不開心了,你就回溯回去換另一種方式。
當然其間你也許會從某些途徑得到一些經驗,能夠判斷哪些路徑不好,會剪枝(這就是分支估界了)。你也可以隨機選擇一些路徑來實施,說不定能立杆見影(這就是回溯的優化了)但總的來說,你都需要一場持久戰……
該演算法一般也能得到最優解,因為大多數MM會感動滴!!!但其缺點是開銷大除非你是非要談一場戀愛不可,否則不推薦使用。特別是你可能還有許多其他的事情要做,比如學習,比如事業……

4.NP
在你追了若干美女都失敗告終後,你發現有一批美女追起來是一樣困難的,如果你能追到其中任何一個就能追到其他所有的美女,你把這樣的女人叫作NP-Complete。
P=NP:這是一個美好的猜想,追美女和恐龍的難度其實一樣。
APX與Random:NP的美女難追,你無法完全佔有她。你只好隨機的去靠近她裝作若無其事;或者用一種策略,追到她的一個approximationratio,例如50%。
APX-hard:這樣的女人,連一個固定的百分比都不給你,還是另謀高就吧。

5.NP完全問題
呵呵,那你為什麼那麼賤,非要去追呢?記住:“天涯何處無芳草!” .不過如果你“非如此不可”的話,建議升級你的硬體,好好學習,好好工作,加強實力,人到中年的時候也許你能解開NP難……

6.網路流
追MM的時候總避免不了送禮物,但是你老是直接送禮物就會給MM造成很大的壓力,於是你就想到了通過朋友來轉送的方法。
你希望送給MM儘可能多的禮物,所以就是需要找到一種配送方案,就是最大流了。
然而你請別人幫忙併不是不要開銷的,你讓A同學拿去給B同學可能需要一些花費,自然你不是一個大款,想最小化這個花費,那麼就是最小費用最大流了……

7.匹配
從初中到高中到大學大家追來追去,就是個二分圖匹配的過程….”和諧社會”應該就一個最大匹配…
可是後來有某些MM同時跟>1個人發展,違背了匹配的基本原則…大家都很BS之…
然後最近斷背山很火,人們驚奇得發現原來還可以是 任意圖匹配…

8.深度優先和廣度優先
深度優先就是追一個mm追到底,直到失敗然後換個mm繼續追……
廣度優先就是同時追多個mm,一起發展……

9.遍歷
前序遍歷就是直接搞定MM,然後搞定她爸媽(左)和你自己爸媽(右)。
中序遍歷就是先搞定未來岳父岳父,然後搞定她,最後告訴你爸媽。
後序遍歷就是,讓未來的岳父岳母和自己爸媽都覺得你們合適之後,才對MM下手,這個時候就沒有障礙了啊。

10.STL
某位貝爾實驗室的大牛在追了N個MM後,為了造福後來人,總結了自己的經驗,出了本《 追MM求愛祕笈大全》,英文名叫StandardcourTing Library,(/* court : vt.向…獻殷勤, 追求; vi.求愛)縮寫為 STL。廣大同學在使用STL後,驚喜地發現追MM變得異常方便,大大縮短了時間和精力!