算法指导人生?数据家告诉你什么时候结束单身!

2024-02-13 14:20

本文主要是介绍算法指导人生?数据家告诉你什么时候结束单身!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

640?wx_fmt=png

来源:笔记侠(ID:Notesman)

整理者:Lily

内容来源:《万维刚·精英日课》专栏解读和中信出版集团《算法之美》书摘。笔记侠作为出版社合作方,经授权发布。转载请联系笔记侠授权。

本文3450字,建议阅读6分钟

不管是从找伴侣还是找停车位,租房还是买房等日常生活经历,算法都可以引导我们做出明智的选择。

在一天或者一生的时光里,哪些事是我们应该做的,哪些是应该放弃的?


这个看似感性并且难以解决的个性化问题,却在计算机算法当中找到了答案。《算法之美》的作者克里斯汀和格里菲思指出,计算机算法的智慧其实可以转化为人类生活的策略。


不管是从找伴侣还是找停车位,租房还是买房等日常生活经历,算法都可以引导我们做出明智的选择。


去年我家有了第二个孩子,明显觉得原来的房子太小,就想换个大点的。


当时正好有个朋友告诉我,他家附近有些新房。我跟老婆去看了一下,当场就决定买,第二天找了个房产经纪人就签合同了。

 

房产经纪人对我们的快速决定表示了赞赏。


我就问他,跟你买房子的人中,最长的用了多长时间?他说有个人在两年中看了一百多个房子,越往后看,房价越高,他越不想买,整个非常难受。

 

这就引出了一个问题。看见好的就买似乎是有点草率了,但是总下不了决心出手肯定也不对,那么一个科学理性的人,应该怎么办呢?

 

用算法来解决。


一、生活源于算法


用计算机算法指导人类生活听起来感觉怪怪的。

 

因为“算法”这个词看上去是如此神秘莫测,与大数据、大政府、大企业有着密切联系,但其实算法指的就是解决问题的一系列步骤。

 

640?


早在计算机开始使用算法前,人类就已经把算法应用到生活中了:


按照食谱学习烤面包时,食谱上的所有步骤就是一个算法;


按照图样编织毛衣时,这份图样就是一个算法;


使用鹿角的末端连续精确地敲打,使石器形成锋利的刃的过程,也是一个算法,可见算法与我们并不陌生,甚至从石器时代开始,就已经是人类生活的一部分了。

 

而橱柜整理与计算机存储器管理所面临的问题非常相似:

 

空间有限,而目标是节省金钱和时间。


我们和计算机其实都是在进行组织工作,只不过我们组织的是衣橱中的物理对象,而计算机组织的是内部的数字信息。

 

也正是由于问题高度的相似性,使缓存作为计算机科学的解决方案,同样适用于人类的家庭生活。

 

二、37%规则:在不确定中做到最好

 

买房子的问题,与其浑浑噩噩地接受命运安排,不如有点理性决策的精神,把它变成一个数学问题。我们假设这个问题的条件是这样的:

 

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


2.遇到一个房子,如果你选择买下,这个房子就是你的。


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


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

 

这些条件可能跟生活中各人实际买房的情况略有不同,但必须这样把问题简化出来,数学家才能计算。

 

数学家的策略是,你要把这一个月的时间分成两个阶段。

 

在第一阶段,你只看不买,就是根据自己的购买能力,了解一下市场上哪些房子你喜欢,哪些你不喜欢。记住在这个阶段内你看到过的最满意的那个房子。

 

等到过了某个时间点 —— 具体说过了你设定期限的37%以后 —— 你就进入第二阶段。


如果预先设定的期限是一个月,那么第二阶段就从第12天开始。

 

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

 

分两阶段这个策略,和37%这个数字,都是数学家们好不容易算出来的。

 

实际上这是一个随机选择优化问题,1958年才被解决。现在人们就把这个办法叫做“37%规则”。

 

640?


37%规则并不能保证你一定能买到最好的房子,但是在假定市场上的房子随机出现的情况下,它是能让你买到一个足够好的房子的足够好的办法。


从概率角度,如果你看了不到37%房子就开始买,你将来更可能后悔买早了;如果你看了超过37%的房子开始买,你将来更可能后悔买晚了。

 

我们生活中有很多情况跟买房是类似的,好东西过了这个村就没有这个店,那要还是不要?

 

使用37%规则,是你作为一个理性人在这个不确定世界中所能做到的最好,那你就可以无怨无悔,没有那么多纠结和痛苦了。

 

640?


再举个例子,找结婚对象也可以用37%规则。

 

比如一个女青年,从18岁开始找对象,设定的目标是在40岁之前结婚,那么根据37%规则,她的两阶段分割点是26.1岁。

 

在数学家看来,这个女青年的最佳择偶策略是这样的。


26.1岁之前是观察期,她应该只交往不结婚,但是必须要记住在交往的男生中间,自己最喜欢的是哪个。

 

26.1岁之后是决策期,再结交新的对象,一旦遇到一个比那个人还好,或者和那个人差不多一样好的男人,就应该马上把他拿下,和他结婚。

 

当然具体到择偶的话,这个数学模型还可以更复杂一点。

 

37%规则是假设你向谁求婚,那个人马上就会答应,主动权全在你手里。 


但如果主动权不在你手里,你向人求婚,有被拒绝的可能性 ,那么分割点就不是37%了。

 

数学家计算,假设你每次被拒的可能性是50%,那我们就要把37%变成25%。


也就说条件不好的人应该缩短观察期,仍然从18岁开始算的话,过了23.5岁之后你就赶紧开始发offer。

 

看谁好就向谁求婚,他要是同意你就达成目标,他要是拒绝你就再看下一个。

 

还有一点,37%规则是在假设无法回头的条件下成立的,也就是说如果你在第一阶段错过一个人,他可能就和别人结婚了。

 

可是如果你条件非常好,就算一开始错过了一个人,过了一段时间回去找他,他还有可能答应你的话,你的观察期就应该延长。

 

具体来说,数学家计算,假如在观察期内已经被你拒绝了的人,你回头他还有50%的可能性会同意,那么这种情况下,你可以把观察期从37%延长到61%。

 

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

 

640?


当然,这些计算都是数学家把人们找对象的过程给理性化、模型化了。

 

这个模型里没有“命中注定的真爱”这个概念,似乎缺少了一点浪漫元素。


你可能会说我一定要找到真爱才能结婚,可什么是真爱?

 

在数学家看来,你一看到A觉得不错,但是错过了,那么再找到一个和A差不多的人,也就可以了。如果你非得说只有A才是真爱!那就不对了。

 

如果你说找对象跟买房子不一样,我一定要寻找命中注定的真爱,那么数学家告诉你,你大概会有两种可能结局:


或者后悔自己没有早早结婚被剩下了,或者后悔自己结婚太早。

 

理性的人,应该知道什么时候停止。


三、将数学模型嵌入你的生活

 

在面临一连串选择时如何做出决定的难题,最优抉择问题经常会改头换面,以不同的形式出现在我们的生活当中。


比如,在驶入停车位之前,需要绕整个停车场多少圈?在商业风险中何时套现脱身?在择偶上,何时观望,何时步入婚姻殿堂?


当你再次面对这类问题时,至少可以通过数学方法来解决。

 

借助并不繁复的算法,我们不仅可以解决找房子的问题,生活中遭遇的所有最优停止问题都可以被妥善处理。

 

从本质上讲,我们身边经常出现因为租房子、停车、求婚而感到苦恼的人,这些人其实就是在自寻烦恼。


他们需要的不是治疗师,而是一种算法。治疗师告诉他们要在冲动与多虑之间找到一个正确的平衡点。

 

算法告诉他们这个平衡点就是37%。


如果我们拥有数学精神,就不用长吁短叹地感慨人生无常了。

 

640?


但需要强调的是,算法不是算命。

 

也许女青年到头来发现他的高中同学才是最佳结婚对象,也许十拿九稳的抢劫犯第一次作案就失手了 —— 这并不等于算法不对。


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

 

如果找足够多的人试验足够多次,你就会发现这些策略比别的策略好 ——更比没有策略好。

 

我们成年以后在生活中运用到复杂数学的机会太少了。如果你不搞技术,可能就连在工作中用到数学的机会都不多。


我们生活中用到的数学,大都停留在小学生水平,比如购物算账。

 

而事实上,一个现代人如果能习惯性地用数学模型去思考问题的话,你可能会发现机会还有很多。数学模型和计算机算法可以帮助你决策。


知识清单


1.生活源于算法:

算法指的就是解决问题的一系列步骤,早在计算机开始使用算法前,人类就已经把算法应用到生活中。


2.最优解:37%

在这个不确定世界中,使用37%规则,使你作为一个理性人能将选择做到的最好。


3.将数学模型嵌入到你的生活

善用数学和算法思维,会挖掘出更多机会。


640?wx_fmt=jpeg


本文来源:公众号 @笔记侠。中国最大的新商业知识笔记共享平台,微信价值排行榜总榜前十,独家笔记支持湖畔大学、混沌大学、青腾大学、高山大学、中欧创业营、京东商学院、北大国发院等顶尖商学院课程,BAT、TMD、小米、华为、网易等知名企业,丁磊、傅盛、李善友等知名人士,60万企业决策及管理层都在看。


640?wx_fmt=png640?wx_fmt=jpeg

这篇关于算法指导人生?数据家告诉你什么时候结束单身!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/705755

相关文章

MySQL InnoDB引擎ibdata文件损坏/删除后使用frm和ibd文件恢复数据

《MySQLInnoDB引擎ibdata文件损坏/删除后使用frm和ibd文件恢复数据》mysql的ibdata文件被误删、被恶意修改,没有从库和备份数据的情况下的数据恢复,不能保证数据库所有表数据... 参考:mysql Innodb表空间卸载、迁移、装载的使用方法注意!此方法只适用于innodb_fi

mysql通过frm和ibd文件恢复表_mysql5.7根据.frm和.ibd文件恢复表结构和数据

《mysql通过frm和ibd文件恢复表_mysql5.7根据.frm和.ibd文件恢复表结构和数据》文章主要介绍了如何从.frm和.ibd文件恢复MySQLInnoDB表结构和数据,需要的朋友可以参... 目录一、恢复表结构二、恢复表数据补充方法一、恢复表结构(从 .frm 文件)方法 1:使用 mysq

mysql8.0无备份通过idb文件恢复数据的方法、idb文件修复和tablespace id不一致处理

《mysql8.0无备份通过idb文件恢复数据的方法、idb文件修复和tablespaceid不一致处理》文章描述了公司服务器断电后数据库故障的过程,作者通过查看错误日志、重新初始化数据目录、恢复备... 周末突然接到一位一年多没联系的妹妹打来电话,“刘哥,快来救救我”,我脑海瞬间冒出妙瓦底,电信火苲马扁.

golang获取prometheus数据(prometheus/client_golang包)

《golang获取prometheus数据(prometheus/client_golang包)》本文主要介绍了使用Go语言的prometheus/client_golang包来获取Prometheu... 目录1. 创建链接1.1 语法1.2 完整示例2. 简单查询2.1 语法2.2 完整示例3. 范围值

javaScript在表单提交时获取表单数据的示例代码

《javaScript在表单提交时获取表单数据的示例代码》本文介绍了五种在JavaScript中获取表单数据的方法:使用FormData对象、手动提取表单数据、使用querySelector获取单个字... 方法 1:使用 FormData 对象FormData 是一个方便的内置对象,用于获取表单中的键值

golang字符串匹配算法解读

《golang字符串匹配算法解读》文章介绍了字符串匹配算法的原理,特别是Knuth-Morris-Pratt(KMP)算法,该算法通过构建模式串的前缀表来减少匹配时的不必要的字符比较,从而提高效率,在... 目录简介KMP实现代码总结简介字符串匹配算法主要用于在一个较长的文本串中查找一个较短的字符串(称为

Rust中的BoxT之堆上的数据与递归类型详解

《Rust中的BoxT之堆上的数据与递归类型详解》本文介绍了Rust中的BoxT类型,包括其在堆与栈之间的内存分配,性能优势,以及如何利用BoxT来实现递归类型和处理大小未知类型,通过BoxT,Rus... 目录1. Box<T> 的基础知识1.1 堆与栈的分工1.2 性能优势2.1 递归类型的问题2.2

通俗易懂的Java常见限流算法具体实现

《通俗易懂的Java常见限流算法具体实现》:本文主要介绍Java常见限流算法具体实现的相关资料,包括漏桶算法、令牌桶算法、Nginx限流和Redis+Lua限流的实现原理和具体步骤,并比较了它们的... 目录一、漏桶算法1.漏桶算法的思想和原理2.具体实现二、令牌桶算法1.令牌桶算法流程:2.具体实现2.1

Python使用Pandas对比两列数据取最大值的五种方法

《Python使用Pandas对比两列数据取最大值的五种方法》本文主要介绍使用Pandas对比两列数据取最大值的五种方法,包括使用max方法、apply方法结合lambda函数、函数、clip方法、w... 目录引言一、使用max方法二、使用apply方法结合lambda函数三、使用np.maximum函数

如何利用Java获取当天的开始和结束时间

《如何利用Java获取当天的开始和结束时间》:本文主要介绍如何使用Java8的LocalDate和LocalDateTime类获取指定日期的开始和结束时间,展示了如何通过这些类进行日期和时间的处... 目录前言1. Java日期时间API概述2. 获取当天的开始和结束时间代码解析运行结果3. 总结前言在J