PE444

摘要:
大体的策略为,根据场上所剩人数,以及与,考虑是否拿走,或者翻开。定义4:若经过一个人的决策,前面在场的人的排位发生变化,或者,则称这次决策为关键决策。证明引理1,在关键决策前,由于均满足,且排位关系没有发生变化,每次我们都在换同一个人的牌。引理2:若目前,必然存在下一个关键决策。故无论如何,这个人的收益会小于,与假设矛盾。

题意

(n)个人按顺序站成一排,每个人手里都有一张写有数字的牌(构造(1sim n)的排列)。
初始牌都是未知的,甚至连每个人都不知道自己手里的牌。
他们在玩游戏,从前往后按顺序,选择
(1)翻开自己的牌,公之于众。
(2)选择一位前面在场的人,拿走他的牌离场,那个人继承这个人的牌,翻开并公之于众。
每个人都绝顶聪明,希望最后自己手里的牌最大。
(E(p))为期望情况下,最后未离开的人数。
(S_1[n]=sumlimits_{p=1}^N E(p)).
(S_k[n]=sumlimits_{p=1}^N S_{k-1}[p])(k>1)

做法

定义1:对于每个人,他知道的信息是前面手里有牌的人的牌的数字(记为集合(P)),以及这个人及后面的人手里的牌的数字集合(记为集合(R))。

定义2:对于一个集合(S),令(max S)为集合内的最大元素,特殊的(S=-infty),则(max S=0);令(min S)为集合内的最小元素,特殊的(S=empty),则(min S=+infty)

大体的策略为,根据场上所剩人数,以及(max P)(min R),考虑是否拿走(max P),或者翻开。

结论1:若(min R>max P),则翻开。

证明显然

(min R<max P),翻开,则可能面临这张牌特别小,或者这张牌很大但可能会被后面的人换走;选择操作二,则直接获得(max P)的收益。

在阐述我们的结论前,先给出一些定义。

定义3:对于未离场的人,手里的牌的相对大小,称为这些人的排位

定义4:若经过一个人的决策,前面在场的人的排位发生变化,或者(min R>max P),则称这次决策为关键决策

接下来,证明一个跟结论1对立的,很强的结论。
结论2:若(min R<max P),会换掉(max P)带走。

证明:
考虑对从后往前的人的决策施归纳,假设当前的人之后的每个人都会按结论1结论2操作(边界情况易证)。
当前这个人面临,(min R<max P)
反证法,假设我们翻开这张牌,最终的收益会大于(max P)
有两种情况,(1)"这张牌大于(max P)"(2)"这张牌小于(max P)"
先证明(2)
(2)"这张牌小于(max P)":
引理1:若目前(min R<max P),对于当前的(max P_{nw}),在下一个关键决策后,(max P_{nxt}<max P_{nw})
证明引理1,在关键决策前,由于均满足(max P<min R),且排位关系没有发生变化,每次我们都在换同一个人的牌。
若这次关键决策,是由排位发生变化触发的,那么当前的人手里的牌小于(P)中的次大值,那么(max P_{nxt})等于原(P)的次大值,显然满足(max P_{nxt}<max P_{nw})
若这次关键决策,是由(max P<min R)触发的,原本满足(max P>min R),那么这个人手里的牌恰好是(min R)(否则不会改变不等式关系),因为每次都在换同一个人牌,现在的(max P_{nxt})等于(max {P_{nw}-{max P_{nw}}+min R_{nw}}<max P_{nw})
引理1得证
引理2:若目前(min R<max P),必然存在下一个关键决策。
证明引理2,考虑反证,假设之后排位一直不会发生改变,由于此时(min R<max P),则(P eq empty),最后一个人操作后,(R=empty),则(min R'=+infty>max P),这是一次关键决策。
引理2得证
这张牌小于(max P),如果想获得大于(max P)的收益,那么必定得等某一时刻(max P'=)这张牌,然后在某次交换后,这个人手里的牌变大,但根据引理1(P)集合内的最大值会在关键决策后严格变小,再根据引理2,容易知道最终这个人手里的牌不会变大。
故无论如何,这个人的收益会小于(max P),与假设矛盾。
再证明(1)
(1)"这张牌大于(max P)"
这张牌成为(max P),下次关键决策后,(max P_{nxt}<max P_{nw}),这张牌也会被换走。
故无论如何,这个人的收益会小于(max P),与假设矛盾。
得证

根据结论1结论2,最终留下来的人均为后缀

结论3:对于一个给定的(n)阶排列,一个数最终保留下来当且仅当其为后缀最小值。

证明:
首先在一个人操作后,其手里那张牌必定会在场上。
引理:假设一个数(v)不为后缀最小值,令其位置为(x),那么第(x+1)个人会将其替换。
证明引理,考虑对位置从小到大施归纳,
因为(v)不为后缀最小值,显然第(x+1)个人会选择带走(max P)
我们假设当前(max P eq v),即(max P>v),显然(max P)不为后缀最小值,根据归纳,其已被删除,与假设矛盾。
引理得证
那么现在只需要证明任意后缀最小值(x)不会被删除,一个数字被删除,当且仅当其成为(max P),当(x)成为(max P),由于其为后缀最小值,此时(min R>max P),后面的人会选择翻开牌而不是替换掉(x)
得证

那么(E(p)=E(后缀最小值个数)=sumlimits_{i=1}^n frac{1}{i})

(S_0(x)=H(x)=sumlimits_{i=1}^{infty}(sumlimits_{j=1}^i frac{1}{j})x^i=sumlimits_{j=1}^{infty} frac{1}{j}frac{x^j}{1-x}=frac{-ln(1-x)}{1-x})

那么(S_k(x)=S_{k-1}cdot frac{1}{1-x}=frac{-ln(1-x)}{(1-x)^{k+1}})

如何快速计算(S_k(x))的某一项呢?

[egin{aligned} S_k'(x)&=(frac{-ln(1-x)}{(1-x)^{k+1}})'\ &=frac{(-ln(1-x))'}{(1-x)^{k+1}}-frac{((1-x)^{k+1})'(-ln(1-x))}{((1-x)^{k+1})^2}\ &=frac{frac{1}{1-x}}{(1-x)^{k+1}}+frac{(k+1)(1-x)^k(-ln(1-x))}{(1-x)^{2k+2}}\ &=frac{1}{(1-x)^{k+2}}+(k+1)frac{-ln(1-x)}{(1-x)^{k+2}}\ &=frac{1}{(1-x)^{k+2}}+(k+1)S_{k+1}(x)\ end{aligned}]

((S_k[n]x^n)'=nS_k[n]x^{n-1}={n+kchoose k+1}x^{n-1}+(k+1)S_{k+1}(n-1)x^{n-1})

故有(n imes S_k[n]=(k+1)S_{k+1}[n-1]+{n+kchoose k+1})

整理一下:(S_{k+1}[n]=frac{n+1}{k+1}S_k[n+1]-frac{{n+ k+1choose k+1}}{k+1})

然后只需要考虑计算调和级数了。
较小时暴力,较大时转为简单形式+收敛级数:( ext{ln}(n)+gamma+frac{1}{2n})
其中(gamma)为欧拉常数,可以通过公式计算:

[lim_{n ightarrow infty} (sumlimits_{i=1}^n frac{1}{n}- ext{ln}(n)) ]

免责声明:文章转载自《PE444》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Activity的生命周期为什么一个Http Header中的空格会被骇客利用下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

kafka查询命令---Linux

Kafka版本:Kafka_2.12-2.1.1kafka _端口默认为9092,zk_端口默认值2181查看topicbin/Kafka主题。sh--zookeperzk_ip:zk_Port--list查看groupbin/kafka用户组。sh--引导服务器kafka-ip:kafka_Port--list查看主题下的基础...

vs下调试程序时,把信息打印到输出窗口

重印:https://blog.csdn.net/cwj066/article/details/82423627 https://stackoverflow.com/questions/20508086/getting-rid-of-atltracegeneral-category-shown-in-atltrace-output方法1:编写一个变量参数函数...

Gradle在Mac上安装及Idea中配置

前言笔者在安装Gradle的过程中发现过程有点繁琐且安装教程比较少,因此记录一下安装过程,方便同行参考环境信息macOS:10.15.5IntelliJIDEA:2020.3Gradle:6.8.2Java:1.8.0_151Homebrew:3.0.1进入Gradle官网点此进入Gradle官网点击安装安装文档包管理安装安装brew本次安装使用brew安装...

PLSQL常用配置之窗口/版面保存、SQL格式化/美化、SQL注释去掉注释等快捷键配置、登陆历史修改配置

//Blog.csdn.net/eyeidolon/article/details/8251791 PLSQL常用配置的快捷键配置,如窗口/布局保存、SQL格式化/美化和SQL注释删除,以及登录历史修改1的配置。PL/SQLDeveloper记住登录密码当使用PL/SQLDeveloper时,默认情况下PL/SQLDeveloper会执行此窗口中的所有SQL...

hiveserver2启动卡住问题解决方案

问题分析:hiveserver2可能是Hadoop集群进入安全模式,导致hiveserver2连接不上集群临时解决方案:离开安全模式即可#查看安全模式情况hdfsdfsadmin-safemodeget#离开安全模式hdfsdfsadmin-safemodeleave#进入安全模式hdfsdfsadmin-safemodeenter问题再分析:如何永久性的解...

PCL点云分割(2)

点云的分割是我想做的机器人手臂捕捉的一个非常重要的部分,因此首先要了解,如果我使用点云库来处理我用kinect获得的点云数据,这个例程也是由我自己慢慢修改程序并结合官方API的解释来实现的。如果我直接更改源程序,由于数据类型、头文件和其他原因,其中的许多细节可能无法编译,我们将很难找出错误。首先,让我们看看我自己设定的场景。然后我使用Kinect获取数据并观...