微信号:programmer_club

介绍:程序员第一自媒体,与你探讨码农人生路上遇到的各类泛技术话题,定期为你推荐码农人生思考、感悟以及启迪!

想要泡到妞?这 10 种的算法你一定要知道!

2015-12-15 21:59 程序员之家

来源:网络,版权归原作者所有




动态规划


基本上就是说:你追一个MM的时候,需要对该MM身边的各闺中密友都好,这样你追MM这个问题就分解为对其MM朋友的问题,只有把这些问题都解决了,最终你才能追到MM。因此,该问题适用于聪明的MM,懂得“看一个人,不是看他如何对你,而是看他如何对他人。”的道理,并且对付这样的MM总能得到最优解。但确定是开销较大,因为每个子问题都要好好对待……



贪心法


基本上就是:你追一个MM的时候,从相识到相知,每次都采用最aggressive的方式,进攻进攻再进攻!从不采用迂回战术或是欲擒故纵之法!目标是以最快的速度确立两人的关系。该法优点是代价小,速度快,但缺点是不是每次都能得到最优解……、



回溯算法


基本上就是:追一个MM,但也许你还是情窦初开的新手,不知道如何才能讨得MM的欢心,于 是你只好一条路一条路的试,MM不开心了,你就回溯回去换另一种方式。当然其间你也许会从某些途径得到一些经验,能够判断哪些路径不好,会剪枝(这就是分支估界了)。你也可以随机选择一些路径来实施,说不定能立杆见影(这就是回溯的优化了)但总的来说,你都需要一场持久战……该算法一般也能得到最优解,因为大多数MM会感动滴!!但其缺点是开销大除非你是非要谈一场恋爱不可,否则不推荐使用。特别是你可能还有许多其他的事情要做,比如学习,比如事业……



NP完全问题


呵呵,那你为什么那么贱,非要去追呢?记住:“天涯何处无芳草!” . 不过如果你“非如此不可”的话,建议升级你的硬件,好好学习,好好工作,加强实力,人到中年的时候也许你能解开NP难……



网络流


追MM的时候总避免不了送礼物,但是你老是直接送礼物就会给MM造成很大的压力,于是你就想到了通过朋友来转送的方法。你希望送给MM尽可能多的礼物,所以就是需要找到一种配送方案,就是最大流了。然而你请别人帮忙并不是不要开销的,你让A同学拿去给B同学可能需要一些花费,自然你不是一个大款,想最小化这个花费,那么就是最小费用最大流了……



NP


在你追了若干美女都失败告终后,你发现有一批美女追起来是一样困难的,如果你能追到其中任何一个就能追到其他所有的美女,你把这样的女人叫作NP-Complete。P=NP:这是一个美好的猜想,追美女和恐龙的难度其实一样。APX与Random:NP的美女难追,你无法完全占有她。你只好随机的去靠近她装作若无其事;或者用一种策略,追到她的一个approximation ratio,例如50%。APX-hard:这样的女人,连一个固定的百分比都不给你,还是另谋高就吧。



匹配


从初中到高中到大学大家追来追去,就是个二分图匹配的过程….”和谐社会”应该就一个最大匹配…

可是后来有某些MM同时跟>1个人发展,违背了匹配的基本原则…大家都很BS之…然后最近断背山很火,人们惊奇得发现原来还可以是 任意图匹配…



深度优先和广度优先:


深度优先就是追一个mm追到底,直到失败然后换个mm继续追……

广度优先就是同时追多个mm,一起发展……



遍历


前序遍历就是直接搞定MM,然后搞定她爸妈(左)和你自己爸妈(右)。

中序遍历就是先搞定未来岳父岳父,然后搞定她,最后告诉你爸妈。

后序遍历就是,让未来的岳父岳母和自己爸妈都觉得你们合适之后,才对MM下手,这个时候就没有障碍了啊。



STL


某位贝尔实验室的大牛在追了N个MM后,为了造福后来人,总结了自己的经验,出了本《 追MM求爱秘笈大全》,英文名叫Standard courTing Library,(/* court : vt.向…献殷勤, 追求; vi.求爱)缩写为 STL. 广大同学在使用STL后,惊喜地发现追MM变得异常方便,大大缩短了时间和精力…

 
程序员之家 更多文章 我们这一代人的困惑 神剪辑,揭秘程序员加班内幕,不能看,看完想笑又想哭! 美国12位创新型程序员:让科技永远改变 说说怎么写clean code 500,000+年薪程序猿出身哪里 猎聘网揭秘前十大学校
猜您喜欢 10个用Java谋生非常有趣的方式 《利用开源项目,学习软件开发》内容回顾与作者采访 Python中的变量绑定[1] 天猫滚动 值得收藏:程序员面试技巧总结