博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
最大钻石问题
阅读量:6821 次
发布时间:2019-06-26

本文共 1084 字,大约阅读时间需要 3 分钟。

hot3.png

1楼到n楼的每层电梯门口都放着一颗钻石,钻石大小不一。你乘坐电梯从1楼到n楼,每层楼电梯门都会打开一次,只能拿一次钻石,问怎样才能拿到「最大」的一颗?

    如果把这题当作纯智力题,答案就是,第一层就拿钻石,以后每开一次门,发现更大就交换,否则do noting,这样到了100楼,怀中抱着的绝对就是最大的钻石,如果你还没累死的话.

    这种策略的思想本质是:万物皆备胎.

    但凡第一时间想出此类策略的人, 都应该面壁思过,且不说你们狡辩的交换不算拿.就单以道德层面来论,你们也不该这么干.你忘记你小时候梦想自己要当一个从一而终的人的决定了么!

    所以为了让大家找回从一而终的自己,重新扛起社会主义的大旗.我们必须严格地定义拿一次的限制,以正三观:钻石一旦拿起就无法放下了.(不要纠结于这些钻石为什么有这种能力,这不是重点- -.)

    so,这就变成了一个纯数学问题, 现在不再是怎样拿到最大的一颗,而是怎样以最大的概率拿到最大的一颗,这个概率又是多少?..........过程推导略, 直接上结果,结果是使用如下的策略可以有约37%的概率取到最大值:

    策略很简单,可以归纳为两点:

    1.先观察前k个钻石的大小

    2.从第k+1个开始一旦碰见最大的就停止

    然后根据简单的数学计算可以得出此策略模型下k的最佳取值为 k = n / e

    此时选中最大钻石的概率为p = 1 / e (约37%)

    下面是果壳网上关于该问题的计算机模拟10000次的统计结果.(n = 30的情况下)

    可以看见该策略下,即使没选到最大值,选中次大值的概率也远远高于其他较小值,非常地具有现实意义.

灵活运用该结论,你将很有可能遭遇如下情景:

A:为什么,给我一个理由....你明明以前....

B:理由么,就是当年你给我的理由,我也一样

A:...

B:当年你跟我说我是那37%, 我后来查了好久才明白.

A:我后悔了

B:后悔木有开启备胎模式么?

A:...

B:你本来就有63%概率后悔的.

A:看来你已经习惯了这些冷冰冰的数字

B:拜你所赐

A:那我真的走了...再也不回来了...

B:无所谓,反正你是前面那37%

-----------------------

世界上最遥远的距离不是生与死,而是明明互为最优,却又互为前37%.

PS:如果想避免以上杯具发生,请各自将相关的n值定义为1,并且记得加上const 属性,严格防止被外部篡改- -!

参考链接:

wiki上此类问题的定义: 

变种取最大期望:

转载于:https://my.oschina.net/u/1183791/blog/183171

你可能感兴趣的文章
大数据各种实用网站
查看>>
win7安装laravel
查看>>
Oracle 各后台进程功能说明
查看>>
屏蔽storm ui的kill功能
查看>>
我的友情链接
查看>>
Oracle Decode函数的使用
查看>>
MSF学习笔记
查看>>
经典脚本案例--check memory
查看>>
20.31 expect脚本同步文件;20.32 expect脚本指定host和要同步的文件;20.33 构建文件分发系统;20.34...
查看>>
CentOS单用户与救援模式
查看>>
postfix 源码centos7上搭建及错误提示---亲测
查看>>
【Redis篇】Redis集群安装与初始
查看>>
jquery基础
查看>>
C# 集合已修改;可能无法执行枚举操作
查看>>
FSM Code Generator
查看>>
JDBC学习笔记——事务、存储过程以及批量处理
查看>>
JVM内存结构
查看>>
Java 锁
查看>>
7、索引在什么情况下遵循最左前缀的规则?
查看>>
c#中委托与事件
查看>>