Web 技术研究所

我一直坚信着,Web 将会成为未来应用程序的主流

爱情是什么?

  年初结了个婚,然后各种事情一大堆,每天累成狗。有好几次我都在和自己做思想斗争,想停止这个博客的更新,但最终我还是决定接着更新下去了。也许有人会问:年纪轻轻干嘛这么想不开?其实吧,结婚也就那么回事,反正是迟早的事情。如果能看懂爱情就不会纠结了。

  忘记了是在网络上还是在书中,以前看过一个这样的段子,我一直都记得:

  有一天,柏拉图问他的老师什么是爱情,他的老师就叫他先到麦田里,摘一棵全麦田里最大最金黄的的麦穗。期间只能摘一次,并且只可以向前走,不能回头。柏拉图于是照着老师的说话做。结果,他两手空空的走出麦田。老师问他为什么摘不到,他说:“因为只能摘一次,又不能走回头路,其间即使见到一棵又大又金黄的,因为不知前面是否有更好,所以没有摘;走到前面时,又发觉总不及之前见到的好,原来麦田里最大最金黄的麦穗,早就错过了;于是,我便什么也摘不到。”老师说:“这就是爱情。”

  按照这么说,这个事件就完全随机了么?还真不是,确实有比较好的方案可以参考。比如上面的段子等价于这道题:有 n 个随机数,只遍历一次,如何尽可能地选出最大值。我的方案是,先遍历前 m 个项找到最大值 o,再从剩余的 n - m 个元素中找到任何一个比 o 大的项并返回。有了这样一个方案之后只要有一个合适的 m 值就可以得到一个优秀的方案。而寻找这个 m 值并不困难,这件事可以交给程序来做,比如下面的代码:

<script src="https://cdn.bootcss.com/echarts/3.0.0/echarts.js"></script> <div id="main" style="width: 600px;height:400px;"></div> <script> const ave = arr => arr.reduce((a, b) => a + b, 0) / arr.length; const select = x => { let mem = []; let std = 0; let value; for (let i = 0; i < 100; i++) { value = Math.random() * 100 | 0; if (i === x) std = Math.max.apply(Math, mem); if (i > x) { if (value > std) break; } else { mem.push(value); } } return value; } const myChart = echarts.init(document.getElementById('main')); const values = []; const keys = []; const render = () => { var option = { xAxis: { data: keys }, yAxis: { min: 45 }, series: [ { type: 'line', data: values } ] }; myChart.setOption(option); }; void function callee(i) { let value = ave(Array.from({ length: 1E4 }, () => select(i))); keys.push(i); values.push(value); render(); if (i < 100) setTimeout(callee, 0, i + 1); }(0); </script>

  这个代码中设定了 n 等于 100,让后尝试 m 的取值从 0 到 100 的每个方案重复 10000 次,得到平均值。这里的测试次数 10000 毕竟还是太少了,所以结果会有一些误差。不过大概可以确定的是 m 的取值为 n 的 6% 到 7% 之间时,这个方案可以得到的优秀程度为 87%,远高于随机选择的 50%。

  假如人生中的最佳择偶年龄为 18 到 28 岁,那么 18 岁的时候先不要急着确定伴侣,先观察找到最好的,然后在剩余的时间里去找到一个比当时看到最好的那个还好的就可以结婚了。

  当然,人生肯定不会像程序一样死。比如很多人 14 岁就开始谈恋爱了。而且很多人 18 岁的时候还在上学,交际圈比较窄,不适合作为 n 的取值参考。反正我不对上面方案负责,该怎么着就怎么着吧。

  总之爱情就是那么回事,这个世界只是一个比较复杂的算法而已。

网名:
3.80.55.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^