P5104 红包发红包

2023-12-21 04:45
文章标签 红包 发红包 p5104

本文主要是介绍P5104 红包发红包,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题意:假设红包剩余w元,则可能会等可能的取出[0,w]中的任意一个实数,现在假设有n个人来取红包,每个人取完之后红包中的剩余量会相应减少,问第k个人取到的钱的期望数是多少

思路:由于本题的剩余钱数和取出数都为实数,所以实际上为一个连续性随机函数,而对于每一个实数的概率都是相等的,所以我们可以借助图形来理解期望值:

对于一个数集,每个数的概率都是相同的,则最终期望即为这些数的平均值,此处也同理,我们对所有数取平均值,也就是将每个x值对应的y值均摊之后,得到的平均值也就是w/2,也就是说,对于第一个人,他可以取到的期望值也就是w/2

然后我们再依次分析之后的每一个人

第一个人取的时候,剩余价值为w,取到的期望值为w/2

第二个人取的时候,剩余价值的期望值为w-w/2=w/2,取到的期望值为w/4

第三个人取的时候,剩余价值的期望值为w-w/2-w/4=w/4,取到的期望值为w/8

由此我们不难发现规律,对于第k个人,可以取到的期望值为\frac{w}{2^{k}}

Accode:

#include<bits/stdc++.h>
#define endl '\n'
#define INF 0x3f3f3f3f
#define INFF 0x3f3f3f3f3f3f3f3f
#define int long long
#define fix fixed<<setprecision
#define pb push_back
#define Mirai ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
using namespace std;
typedef pair<int,int> pii;
const int mod=1e9+7;
int w,n,k;
int qmi(int a,int b,int p)
{int res=1;while(b){if(b&1)res=res*a%p;a=a*a%p;b>>=1;}return res;
}
void solve()
{cin>>w>>n>>k;cout<<w*qmi(qmi(2,k,mod),mod-2,mod)%mod;
}
signed main()
{Mirai;int T=1;//cin>>T;while(T--){solve();}
}

这篇关于P5104 红包发红包的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/518685

相关文章

AI艺术创作福利:免费领取红包封面,Meo喵、龙小金与你共庆佳节!

🎉🐉🐱 亲爱的朋友们,佳节将至,北京时间24年9月6日18:00,我们通过Midjourney的AI艺术创作和ComfyUI设计,特别为大家准备了一份特别的礼物——1588个独家设计的微信红包封面!欢迎关注我们网站的动态,福利不定时发放,🧧🎁红包封面如下: 🌟红包封面特色 我们的红包封面设计融合了现代科技与传统文化,龙小金与Meo喵的形象通过Midjourney的AI艺术创作和

拼手气红包如何设计?

微信是我们日常生活中必不可少的聊天工具,里面的红包功能我们也经常使用,其中,拼手气红包有时候可以抢到很大,有时候就只有0.01,那这个功能应该是如何实现的呢? 红包的分配需要遵循几个规则: 所有人抢到的红包金额之和要等于总金额,不能多也不能少最低红包金额是一分钱保证所有人抢到的红包金额随机 一. 随机算法 先将总金额减去每个红包的最低金额一分钱,在0~剩余金额中取随机数,加上一分钱就是第一

双十一红包

天猫双十一红包 http://s.click.taobao.com/JVTnXQx 红包名称: 双11红包 红包面额: 双11红包:1元、2元、5元、1111元;双11购物券:10元 领用起止时间: 2016年10月21日00:00:00 至 2016年11月10日23:00:00 红包使用时间: 2016年11月11日00:00:00 至 2016年1

2014年2月17日 微信红包

大年三十晚上1月30号开始发布微信红包,一共有500W用户抢红包,总金额大约2.4亿 而之前支付宝也推出过一个抢红包的应用,但是总金额只有1800W 微信之后联合嘀嘀打车,开始竞争打车市场,每个用户补贴10元,每个师傅补贴10元,总投资2亿 之后支付宝坐不住了,投资5亿,开始和微信竞争 他们的这种竞争慢慢的进入了线下交易市场 以后,我们的衣食住行可能都会使用微信支付,或者支付宝支付,手机支

微信红包的CAP

点击上方“朱小厮的博客”,选择“设为星标” 后台回复"书",获取 后台回复“k8s”,可领取k8s资料 本材料出自网络公开材料 不知道为啥 it168 暂时不能访问 http://wenku.it168.com/d_001578840.shtml 其它参考材料: https://www.open-open.com/lib/view/open1427

发红包案例(java)

User类创建 public class User {private String name;private int money;public User(){}public User(String name,int money){this.name=name;this.money=money;}public void show(){System.out.println("Name:"+name+

2021 牛年春节寄语(附读者红包,每人都有)

窗外日光弹指过,席间花影坐前移。 不知不觉即将步入新的一年,在这辞旧迎新之际,我想和各位读者朋友简单聊一聊这一年来的概况,自己的想法以及对大家的祝福,顺便以现金红包的形式回馈一直陪伴的你,不带们。 去年的除夕,我在每日思考专栏里写下了这段话。 我说 2019 像平静的河水,工作、生活和感情都没有明显的变化,但其实也有在蓄势,期望河水有天能够奔腾。 2020 这条河虽说不上奔腾,但也不再平静,载

C# .net MVC 微信红包(服务号发送红包)

C# .net MVC 微信红包(服务号发送红包) 注:需要开通微信支付的服务号! //跳转微信登录页面public ActionResult Index(){ViewBag.url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" +{服务号appid} + "&redirect_uri=http%3A%2F%2

解析拼手气红包金额划分算法

文章目录 问题抽象问题简化思路一思路二思路三结束语 “叮咚”,微信提示音响起,打开手机发现“相亲相爱一家人”的群里收到一个红包,天不负我,这一次终于抢到的金额终于说得过去了,虽然不是“运气王”,但有时候做个榜二也是一件很幸福的事情。 由红包引发的思考 红包的金额是如何划分的?红包的金额是怎么实现的完全随机呢? 问题抽象 将M元(M可以是两位数小数)的红包完全随机划分,最

100的红包7个人随机分,限制值在10-30之间

public class RedPacketTest {public static void main(String[] args) {for (int i = 0; i < 5; i++) {splitRedPacket(100.00, 7, 10.0, 30.0);}}/*** 每个数由最小值加上随机数,每次生成随机数由剩余的数减去随机数** @param total 总和* @pa