小米oj Game

在一场掷骰子游戏中,Alice和Bob通过掷n个骰子来决定胜负,总点数高者胜出。游戏进行k局,Alice想要知道她平均能赢多少局。文章介绍了一个简化的方法来计算Alice赢得局数的期望,利用二项分布的性质,指出无论骰子数量和局数如何变化,只要游戏公平,Alice赢得的期望局数总是等于k的一半。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Game

Alice 和 Bob 玩起了掷骰子的游戏,为了增加趣味性,他们制定了一套新的判断规则。
两人同时掷 n 个骰子,每个骰子会等概率掷出 1…6 这六种点数中的一种,总点数大的人获胜,总点数一样就继续掷,重复如此直到游戏结束。

为了避免偶然性,每次游戏他们会玩 k 局,Alice 想知道她赢的局的期望。

输入
输入第一行有一个正整数 TT,代表游戏的次数。 第二行到第T+1T+1T+1 行每行有两个正整数 n,kn,knk 分别代表本次游戏每一局掷骰子的数量和局数。

1≤T≤100,0001≤T≤100,0001 \leq T \leq 100,0001≤T≤100,0001T100,0001T100,000
1≤n,k≤1,000,000,0001≤n,k≤1,000,000,0001 \leq n, k \leq 1,000,000,0001≤n,k≤1,000,000,0001n,k1,000,000,0001n,k1,000,000,000
输出
输出有 TT 行,每一行一个数代表 AliceAliceAlice 赢得局数的期望,结果保留两位小数。

题解
服了,自己傻傻的算了半天赢一局的概率,死活算不出来,才想起输赢的概率不就是0.5吗,不是输就是赢,期望就是二项分布的期望E(x)=kpE(x)=kpE(x)=kp,主要是第一次交的代码忘记乘k了,怀疑自己的瞎猜有点问题,0.0

代码

#include <bits/stdc++.h>

using namespace std;

int main()
{
    // please write your code here
    int t;
	cin>>t;
	while(t--){
		int a,b;
		cin>>a>>b;
		printf("%.2f\n",0.5*b);
	}
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值