首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

生活中的算法——37%法则

狄更斯的《双城记》中第一句话是:

这是最好的时代,也是最坏的时代。

这本首次出版于1859年的书距离我们已经150多年了。如果狄更斯来到今天,我们可以坚定地告诉他:“这是最好的时代,也是最坏的时代。”

因为我们正在从信息时代跨入智能时代。曾经,我们要学习如何操作机器,掌握机器的语言,向机器靠拢。而今天,机器在向人类靠拢,试图理解人类、用我们的语言与我们对话。这就是“智能时代”,这个时代的基础是数据和算法。

我们还没有经历过机器在智能上全面超越人类的时代,我们需要在这样的环境中学会生存。这将是一个让我们振奋的时代,也是一个给我们带来空前挑战的时代。

这两年,出尽风头的人工智能是阿尔法狗。阿尔法狗(AlphaGo)是第一个击败人类职业围棋选手、第一个战胜围棋世界冠军的人工智能程序,由谷歌(Google)旗下DeepMind公司戴密斯·哈萨比斯领衔的团队开发。具体到下棋的策略,阿尔法狗里面有两个关键的技术。

第一个是把棋盘上当前的状态变成一个获胜概率的数学模型,这个模型的关键是靠大数据训练(学习)出来的。

第二个是启发式搜索算法——蒙特卡洛树搜索算法(Monte Carlo Tree Search),这个算法能将搜索的空间限制在非常有限的范围内,保证计算机能够快速找到好的下法。

由此可见,下围棋这个看似智能型的问题,从本质上讲,是一个大数据和算法的问题。

数据和算法是驱动智能时代的两架马车。“大数据”这个时髦的词听得我们耳朵都要长茧了。今天我们不说数据,来谈谈算法。

一、算法是什么?

算法在百度百科中的定义如下:

算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。

一个算法应该具有以下五个重要的特征:

有穷性:(Finiteness)算法的有穷性是指算法必须能在执行有限个步骤之后终止;

确切性:(Definiteness)算法的每一步骤必须有确切的定义;

输入项:(Input)一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定出了初始条件;

输出项:(Output)一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的;

可行性:(Effectiveness)算法中执行的任何计算步骤都是可以被分解为基本的可执行的操作步,即每个计算步都可以在有限时间内完成(也称之为有效性)。

是不是越看越迷糊?

简单说,算法就是一个解决问题的过程。

这个听起来高大上的词,实际上在我们生活中随处可见,每一天我们都会用到各种算法,只是你不知道而已。

比如菜谱就是一个算法。它就是一个饭菜制作的流程,解决我们如何做饭的问题。

按照算法的定义,菜谱具有算法的五个特征。

举个栗子:

菜谱:拍黄瓜

1、黄瓜洗干净。

2、放在案板上,用刀拍开,切小块。

3、蒜切末,花生用刀碾碎。

4、黄瓜加入蒜末、花生粒、生抽、芝麻油、香醋,充分搅拌均匀入味,即可。

有穷性:拍黄瓜,有4个步骤

确切性:每个步骤目标明确。

输入项:黄瓜、蒜、花生、生抽、芝麻油、香醋

输出项:拍黄瓜这道菜

可行性:每个步骤目标明确,能够在有限时间内完成。(拍个黄瓜也就5分钟)

其实,菜谱也好,说明书也好,人生的取舍与选择也好,商业战略决策也好,这些都是一种算法问题。

举两个简单的生活例子。

比如打印一个20页的文件,需要打2份。

打印出来的文件排序是:“112233445566….2020”。现在你开始分成两份,正常情况下,你会左一张右一张这样分成两摞。

实际上有个更简易的分法:先在左边分1张,然后右边分两张,再左边分两张,再右边分两张……最后一张分左边。排序如下:[1,12,23,34,45…1920,20]

通过采用算法的优化,一次两张的分法,工作量一下减少了一半。

再比如,快速排序算法。

作为一名有前途的图书管理员,你需要把还回来的一堆书(比如有100本)按顺序入架。你该怎么做?

传统的办法:

一本一本书按照序号还回到书架。100本书,你需要跑100次。

经过算法优化的方法:

先从这堆书里随便挑出来一本,

把比它号小的扔左边,比它号大的扔右边。

分成两堆后,再重复上面的步骤。

从小到大排序后的书,按照书架顺序归类。

每个书架跑一次,可能只需要跑10次就完成了。

通过采用算法的优化,工作量能够减少了一大半。

从以上生活中的例子能看出来,自从人类有文明以来,我们就一直在发明、使用和传播各种各样的算法,用于衣、食、住、行,等等。

上面的例子中算法虽然有用,但是我们用笨方法也能完成任务。

然而,在人生中,很多时候会面临选择的问题。人生没有回头路,用笨方法的人往往会“后悔”和“错过”。尤其是在今天这个智能时代,不掌握点有用的算法,最好的时代也会变成最坏的时代。

二、有用的37%法则。

我们先来讲个故事。

很多人听过掰玉米这个类似的故事:一片玉米地,你需要从里面摘选一个棒子最大的玉米。但只能摘一次,而且不能回头。

你第一次走进玉米地,发现很多很好很大的玉米棒子,很快摘下了你看到的第一个比较大的玉米棒子,然后继续往前走,然而越走越失望,你沮丧地发现前面还有很多比你手里的大得多的玉米棒子。但是你已经不能够选择了。这种选择,名字叫“后悔”。

你第二次走进玉米地,同样也发现了很多很好的玉米棒子,但是这一次你吸取“后悔”的教训——前面一定有更好的。你一直向前走,直到发现自己差不多走出了玉米地。按照规则,你回不去了。就这样,你错过了最好的玉米棒子。这种选择,名字叫“错过”。

这个问题,其实就是我们面临的选择的问题。面对入职、恋爱、机会的诱惑,你往往第一次“后悔”,第二次“错过”,但是你永远无法回到过去。

如果你既不想后悔,又不想错过,那么什么样的心智模式能够帮助我们做最好的选择?

数学家欧拉给出一个重要的数字:37%。

对于在玉米地选择玉米棒子的问题。数学家的策略是,你要把这片玉米地分成两个阶段。

前37%为第一阶段。在这个阶段,你只看不选,就是认真观察比较这个阶段最大的玉米棒子,记住那个玉米棒子的大小。

等过了37%,进入第二阶段。从这个阶段开始,你一旦遇到一个比第一阶段那个最大的玉米棒子还要大的玉米,或者类似的玉米,就毫不犹豫地选择它。

分两个阶段这个策略和37%这个数字,是数学家欧拉好不容易算出来的,这实际上是一个随机选择优化问题。这个办法就叫37%规则。

37%的规则并不能保证你一定能选择到最大的玉米,但是在这片玉米地里,玉米棒子大小是随机出现的。在这种随机出现的情况下,它是一个能够选到一个足够大玉米的好办法。从概率的角度来讲,如果你看了不到37%的玉米就开始选择,你将来很可能后悔选早了;如果你看了超过37%的玉米开始选,你将来可能后悔选晚了。

爱学习的你肯定会问,这个数值是如何算出来的。

我们来看求解过程。

假设这片玉米地有N个玉米,数学模型上说,就是先拒掉前面 k 个玉米,不管这些玉米有多大;然后从第 k+1 个玉米开始,一旦看到比之前所有玉米都要大的,就毫不犹豫地选择它。不难看出,k 的取值很讲究,太小了达不到试的效果,太大了又会导致真正可选的余地不多了。这就变成了一个纯数学问题:在玉米总数 n 已知的情况下,当 k 等于何值时,按上述策略选中最大玉米的概率最大?

如何求出最优的 k 值?

对于某个固定的 k,如果最适合的玉米出现在了第 i 个位置,k的概率记作P(k)。

用 x 来表示 k/n 的值,并且假设 n 充分大,则上述公式可以写成:

对 -x · ln x 求导,并令这个导数为 0,可以解出 x 的最优值,它就是欧拉研究的神秘常数的倒数—— 1/e !

由于 1/e 大约等于 0.37(e ≈2.718281828459),因此这条法则也叫做 37% 法则。

三、算法与生活,如何在生活中应用37%法则。

现在,你知道了37%法则是你作为一个理性的人在这个不确定的世界中所能做的最佳策略,那么你可以无怨无悔,没有那么多纠结和痛苦了。

比如买房子和择偶,都可以应用37%法则。

对于买房子,这个问题的条件如下:

你随机遇到各种房子,但你只打算买一个。

遇到一个房子,如果你买下来,这个房子就是你的。

如果你选择不买,很快别人就会把它买走,你没有第二次机会。

你应该给自己设定一个看房总数的限度,或者一个时间期限。比如在一个月内一定要买到房子。

根据37%法则,将一个月时间分为两个阶段。前11天为第一阶段,这个阶段只看不买,了解市场上的情况,你喜欢和不喜欢的房子。这个阶段你一定要记住你最满意的房子。

等从第12天开始,你一旦遇到一个比第一阶段那个最满意的房子要好,或者类似的,就要毫不犹豫买下来。

对于择偶,同样可以运用37%法则。比如,一个女性从20岁开始找对象,设定的目标是30岁之前结婚,那么根据37%法则,两个阶段的分割点就在23.7岁。

在20岁到23.7岁之间是观察期,只交往不结婚,但是必须记住在交往的男生中最喜欢的那一个。23.7岁之后是决策期,一旦遇到一个比那个人还好或者差不多好的男生,就应该选择和他结婚。

但是对于择偶,这个数学模型会更复杂,因为假定的是你选择他,他就必须答应。实际生活中可能不会如此,如果有被拒绝的可能性,那么分割点就不是37%。

假设被拒绝的可能性是一半,那么要把37%变成25%。也就是说,条件不好的人要缩短观察期。

如果你的条件非常好,就算一开始你错过了一个人,过了一段时间去找他,他还有可能答应你的话,那么你的观察期应该延长。假设这个同意的可能性是一半,那么你可以把观察期延长到61%。

总的来说,条件好就多等等,不要急于决定;条件差就赶紧行动。数学模型计算的结果,跟我们的常识是相符合的。

这个37%法则,说的是面对一个不确定的世界,在你根本不知道命运会怎样的情况下,所能采取的最佳策略。

在生活中,很多人就败在不知道什么时候停止选择。理性的人,应该知道什么时候停止。因为,当选择之后更重要的是去经营我们的选择。

在我们这个最好的时代,发展的步伐是无法阻挡的,我们所能做的是掌握一些有用的算法,用理性精神来面对现实,抓住智能时代的机遇,而不是回避它、否定它和阻止它。未来的社会,属于那些具有创意的人,属于那些理性的人,属于那些懂得在生活中运用算法的人。

来源:知乎 | 心蓝

https://zhuanlan.zhihu.com/p/35666768

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181214B06SIA00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券