[Hackerrank题目选做] Random Number Generator 二分+数学+猜结论

该博客讨论了一道Hackerrank的挑战,涉及优化随机数生成器以获得最大期望得分的问题。博主通过分析样例和数学推理,提出一个猜测,即最优概率分布与1/2的差构成等比数列。通过二分搜索找到正确的概率分布,以确保所有概率非负。博主还提及了拉格朗日乘数法作为可能的解决方案,但表示自己对此不熟悉。
摘要由CSDN通过智能技术生成

题目链接: https://www.hackerrank.com/challenges/random-number-generator-1

题解: 假设1-N产生的概率分别为p[1],....p[N],

          则期望得分为sigma(i=1....n,j=i....n,p[i]*p[j]*(i+j))-sigma(i=1....n,p[i]*p[i]*2*i).

          看到这个式子,菜鸡博主可能没有什么高超的数学姿势啊,于是开始强推------>好像并没有什么卵用,

          然而因为太菜,博主并没有想到把期望得分的计算拆开来看考虑每个数的贡献(还是万能的UOJ群的某大牛讲的)

          于是考虑每个数字对于答案的贡献,则期望得分可以写成sigma(i=1...n,2*i*p[i]*(1-p[i])).

          这个式子中,2是常数扔掉,需要最大化的式子就变成了sigma(i=1...n,i*p[i]*(1-p[i])).

          而显然的是,为了使这个式子的值最大化,p[i]*(1-p[i])的值显然单调不下降,同时,任何pi的值都不会大于0.5.

          根据这个性质,考虑分析样例法---->

                                     样例为N=3,最优情况下: p[1]=5/22,p[2]=4/11,p[3]=9/22.

     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值