Skip to content

第六十四章 O(?)

林知行是在整理桌面文件夹时发现那个文档的。

文件名是“人生算法.docx”,创建时间三个月前,最后一次修改是上周三凌晨两点十七分。他盯着文件名看了几秒,双击打开。

屏幕亮起,光标在文档开头闪烁。

第一行是:

// 人生算法 v0.0
// 输入:能力, 学历, 努力, 运气
// 输出:认可
// 约束条件:未知

他往下滚。

v0.1到v0.3:加权重、时间维度,试图量化能力增长和运气噪声。 v0.4:引入期望值计算,但发现收益函数本身是主观的。 v0.5:改用博弈论模型,策略空间是{创业,大厂,专升本}。 v0.6:简化成决策树,但概率和收益都是他自己估的——整个决策树是主观臆想的产物。 v0.7:放弃量化,改用加权评分。五个维度:收入、成长性、自由度、家人期望、不确定性。 v0.8:家人期望的权重无法确定。父亲从不说他想要什么,母亲只说“你自己决定”。 v0.9:把家人期望改成“家庭责任”。家庭责任怎么量化?每月转钱?陪伴时间?让父母在亲戚面前有面子? v1.0:彻底推翻。试图用评分函数概括人生选择,本身就是傲慢。人生不是优化问题,没有目标函数,没有约束条件,更没有全局最优解。

但文档没有停在v1.0。

v1.1到v1.2:试效用函数,但风险偏好系数测试结果本身不一致。 v1.3:改用利弊清单。创业:自由但不确定;大厂:稳定但有天花板;专升本:需要时间但可能提升起点。 v1.4:利弊清单的每一项都可以反驳。创业的“自由”是伪自由——没有资金、团队、行业资源。大厂的“稳定”是伪稳定——裁员随时发生,35岁危机真实存在。专升本的“可能提升起点”是伪可能——专升本学历在AI行业依然是鄙视链底端。 v1.5:他开始怀疑自己。是不是太理性了?有些选择就是不能用逻辑分析的?但他除了逻辑分析,什么都不会。 v2.0:引入新变量——信心。信心无法量化,但会影响执行效果。他不知道怎么把信心塞进算法里。 v2.1:信心可能是年龄的函数?他22岁,信心峰值可能还没到。或者信心是经历的函数?比赛失败、简历被拒、项目危机,信心应该是衰减的。 v2.2:信心的建模比人生选择本身更复杂。他放弃了。

v3.0:最新的版本。昨天凌晨写的。

function decide(创业, 大厂, 专升本) {
    // 参数列表写完了
    // 函数体需要一个评分函数
    score = f(收入, 成长性, 自由度, 家人期望, 不确定性)
    return max(score(创业), score(大厂), score(专升本))
}

f函数的定义是空的。

他现在就在这个空的函数里。

林知行把文档滚动到最底部,光标停在v3.0的空白处。

他深吸一口气,开始打字。

function score(option) {
    收入 = 0
    成长性 = 0
    自由度 = 0
    家人期望 = 0
    不确定性 = 0
    
    if (option == 创业) {
        收入 = 3  // 现在很低,但可能很高
        成长性 = 9  // 最高
        自由度 = 8  // 很高
        家人期望 = 2  // 父母不理解
        不确定性 = 10 // 最高
    }
    
    if (option == 大厂) {
        收入 = 7  // 七折,但还行
        成长性 = 6  // 有天花板
        自由度 = 3  // 很低
        家人期望 = 8  // 父母觉得稳定
        不确定性 = 4  // 相对低
    }
    
    if (option == 专升本) {
        收入 = 1  // 现在没有
        成长性 = 5  // 取决于学校
        自由度 = 2  // 被课程绑定
        家人期望 = 9  // 父亲画了红圈
        不确定性 = 6  // 考试结果不确定
    }
    
    total = 收入 + 成长性 + 自由度 + 家人期望 + 不确定性
    return total
}

他盯着这五行数字。

创业:3+9+8+2+10 = 32 大厂:7+6+3+8+4 = 28 专升本:1+5+2+9+6 = 23

差距看起来很大。但他知道问题在哪里。

他把“不确定性”的权重改了。

在原始代码里,不确定性和其他维度是等权的。但不确定性应该有惩罚系数——不确定性越高,惩罚越大。

他加了一行:

total = 收入 + 成长性 + 自由度 + 家人期望 - 不确定性 * 0.5

现在重新算:

创业:3+9+8+2 - 100.5 = 17 大厂:7+6+3+8 - 40.5 = 22 专升本:1+5+2+9 - 6*0.5 = 14

大厂反而成了最优解。

他盯着屏幕,发现一个问题:不确定性系数0.5是他随手写的。如果改成0.3或0.8呢?结果会完全不同。

他换了一种方式。

不设惩罚系数,改用加权平均。每个维度的权重是他认为的重要程度。

权重 = {
    收入: 0.25,
    成长性: 0.25,
    自由度: 0.2,
    家人期望: 0.15,
    不确定性: 0.15
}

score = 收入*0.25 + 成长性*0.25 + 自由度*0.2 + 家人期望*0.15 + 不确定性*0.15

他重新计算:

创业:6.4 大厂:5.65 专升本:4.15

创业最高。

但如果他把自由度的权重从0.2改成0.1,把家人期望从0.15改成0.25呢?

创业:5.8 大厂:6.15 专升本:4.85

大厂又成了最高。

他靠在椅背上,盯着天花板。

权重是他定的。不确定性系数是他定的。评分标准是他定的。整个算法的每一个参数,都是他主观设定的。

算法没有客观性。

算法只是他试图把主观感受伪装成客观决策的工具。

他以前用算法逃避做选择——把人生问题转化成数学问题,这样就不用面对真正的困境:他不知道自己想要什么。

现在他知道了。

他想要什么?

他想要自由。但自由的代价是不确定性。

他想要稳定。但稳定的代价是天花板。

他想要家人的认可。但家人期望和他自己想要的可能不一样。

他想要成长。但成长需要时间,而时间不站在他这边。

每一个选项都有代价,每一个代价都是真实的。

他没有钱。没有学历。没有背景。没有退路。

他只有一个开源的项目,十七家商户在用,一个不确定的未来。

屏幕上的光标还在闪烁,停在v3.0的空白函数体里。

他删掉了整个函数。

function decide(创业, 大厂, 专升本) {
    // 算法失效
    return null
}

他盯着这三行字。

算法失效。

从v0.0到v3.0,他试了二十多个版本,每一个都被他自己推翻。不是因为算法有错,是因为算法解决不了这个问题。

人生选择不是优化问题。

没有目标函数,没有约束条件,没有全局最优解。

只有选择,和选择的后果。

门开了。

方小满拎着一袋橘子走进来,看到林知行盯着屏幕发呆。

“干嘛呢?”他把橘子放在桌上,“吃橘子不?”

林知行没动。

方小满凑过来看屏幕。

“人生算法?”他念出来,“你还在弄这个?”

“嗯。”林知行说。

“v3.0?”方小满往下滚了滚,“这么多版本?”

“二十多个。”林知行说。

方小满坐到他旁边,看着屏幕上的代码。

“这写的什么?”他指着return null,“算法失效?”

“嗯。”

方小满看了他一眼。

“你以前用算法逃避做选择。”他说,“现在算法帮不了你了,你慌了。”

林知行没说话。

“但其实选哪条路没那么重要——”方小满拿起一个橘子,开始剥,“重要的是选了之后不回头。”

林知行转过头看他。

方小满把橘子皮撕成一条一条的,动作很熟练。

“你怎么知道?”林知行问。

“我不知道。”方小满说,“但我专升本失败了,我也活得好好的。你比赛没得奖,你也活得好样的。路没选对,天不会塌下来。”

他把一瓣橘子递给林知行。

“吃。”

林知行接过来,塞进嘴里。

橘子很甜,汁水在嘴里爆开。

方小满自己也吃了一瓣,然后说:“你到底在纠结什么?”

林知行想了一会儿。

“我在纠结,我不知道自己想要什么。”他说。

“那你想要什么?”

“我不知道。”林知行说,“我以前以为我知道。我想要证明自己,想要赚钱,想要被人认可。但现在我发现,这些都不是我真正想要的。”

“那你真正想要什么?”

林知行盯着屏幕。

“我不知道。”他说,“但我知道我不想要什么。”

“不想要什么?”

“不想要爬那个坡。”林知行说,“不想要七折起薪,不想要低一级title,不想要每次晋升都被拿出来评估。”

“那大厂就不去了呗。”方小满说。

“嗯。”

“沈渡那边呢?”

林知行想了一下。

“还在考虑。”他说,“但我不想要独占期。我不想被绑死在一个项目里。”

“那就谈呗。”方小满说,“谈不拢就算了。”

“专升本呢?”

方小满看着他。

“你爸画了那个红圈。”他说。

林知行没说话。

“但那是你爸想要的,不是你想要的。”方小满说,“你想要吗?”

林知行想了很久。

“我不知道。”他说,“但我知道,如果我去了,我会后悔。”

“为什么?”

“因为那不是我的路。”林知行说,“那是我爸的路。他没读过大学,所以他觉得大学很重要。但我已经走了另一条路,我不想回头。”

方小满点了点头。

“那就别去了。”他说。

“但我爸……”

“你爸会理解的。”方小满说,“他可能不高兴,但他会理解。他是你爸,不是你的老板。”

林知行没说话。

他盯着屏幕上的代码。

function decide(创业, 大厂, 专升本) {
    // 算法失效
    return null
}

算法失效。

但人生没有失效。

选择还在那里,等着他做。

他关掉了文档。

没有保存。

方小满看着他:“不保存?”

“不保存。”林知行说,“这个算法没用了。从今天起,我不用算法做选择了。”

“那你用什么?”

林知行站起来,走到窗边。

窗外是大专的操场。几个学弟在打篮球,球鞋摩擦地面的声音很清晰。夕阳把篮球架的影子拉得很长,投在地面上。

他想起三年前刚入学的时候,也站在这个窗口往下看。

那时候他觉得自己被困住了,被困在一个大专里,被困在一个没有前途的专业里。

现在他知道了。

他不是被困住。

他是站在一个岔路口,每条路都通向不同的问题。

创业的问题是没有钱,没有团队,没有资源。

大厂的问题是有天花板,有学历歧视,有晋升坡道。

专升本的问题是需要时间,需要钱,需要放弃他已经走过的路。

每一个选项都有问题。

但问题不是用来解决的,是用来选择的。

他愿意被困在哪种问题里?

他愿意为哪种问题付出代价?

他想起方小满说的话:选哪条路没那么重要,重要的是选了之后不回头。

不回头。

他转过身,看着方小满。

“小满。”他说。

“嗯?”

“我想好了。”

方小满愣了一下:“想好什么了?”

“我想继续做产品。”林知行说,“我想继续服务那十七家商户,想继续迭代那个系统,想把它做得更好用。”

方小满看着他,没说话。

“但我不确定。”林知行说,“我不确定这条路能走多远,不确定能不能赚钱,不确定能不能做大。我只知道,这是我目前最想做的事。”

方小满剥开最后一瓣橘子,塞进嘴里。

“那就做呗。”他说,“不确定就不确定呗。谁的人生是确定的?”

林知行笑了。

“你呢?”他问,“你有什么打算?”

方小满想了想。

“我帮你。”他说,“我是团队的嘴,我帮你跑商户,帮你谈合作,帮你处理那些你不想处理的事。”

“但你也有自己的路要走。”

“我的路就是你的路。”方小满说,“你创业,我就帮你创业。你去大厂,我就等你出来。你专升本,我就等你毕业。反正你去哪儿,我就去哪儿。”

林知行看着他,心里有点堵。

“你不用这样。”他说。

“我愿意。”方小满说,“我是你兄弟,不是你的员工。兄弟是不用算工资的。”

林知行没说话。

他转过身,继续看着窗外。

夕阳已经落下去了,天空变成深蓝色。篮球场上的灯亮起来,把球场照得很亮。学弟们还在打球,喊叫声传过来,听不清在喊什么。

他想起三年前的自己。

那个站在窗口往下看,觉得自己被困住的自己。

现在他知道了。

他不是被困住。

他是站在一个岔路口。

每条路都通向不同的问题。

但每条路也都通向不同的风景。

他愿意选择哪条路,就愿意接受哪条路的问题。

算法失效了。

但选择没有失效。

他深吸一口气,然后呼出来。

“小满。”他说。

“嗯?”

“明天帮我约一下沈渡。”林知行说,“我想跟他谈谈,把合作条件再细化一下。”

“行。”方小满说,“还有呢?”

“还有……”林知行想了一下,“帮我看看,有没有什么新的商户想找我们做系统。我需要更多的真实场景。”

“没问题。”方小满说,“还有呢?”

林知行转过身,看着方小满。

“还有。”他说,“谢谢你。”

方小满笑了。

“谢什么?”他说,“你请我吃橘子就行了。”

林知行也笑了。

他走回书桌前,关掉电脑。

屏幕暗下去,文档关闭,算法失效。

但人生没有失效。

选择还在那里,等着他做。

而这一次,他不用算法了。

他用心跳。

(本章完)