SGU 495. Kids and Prizes( 数学期望 )

题意: N个礼品箱, 每个礼品箱内的礼品只有第一个抽到的人能拿到. M个小孩每个人依次随机抽取一个,  求送出礼品数量的期望值. 1 ≤ N, M ≤ 100, 000

挺水的说..设f(x)表示前x个人都选择完成后礼品剩下数的期望值( f(0) = N ), 那么f(x) = f(x - 1) - f(x - 1) / N = f(x - 1) * (N - 1) / N (显然). 那么答案就是等于 N - N * [(N - 1) / N]^M. 后面部分可以用快速幂优化.时间复杂度O(log M). 数据这么小不用快速幂O(M)应该也能过...

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

#include<bits/stdc++.h>

using namespace std;

double POW(double p, int a) {

double ans = 1;

for(; a; a >>= 1) {

if(a & 1) ans *= p;

p *= p;

}

return ans;

}

int main() {

int N, M;

scanf("%d%d", &N, &M);

printf("%.9lf\n", N - POW(1.0 * (N - 1) / N, M) * N);

return 0;

}

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

495. Kids and Prizes

Time limit per test: 0.25 second(s)
Memory limit: 262144 kilobytes

input: standard
output: standard

ICPC (International Cardboard Producing Company) is in the business of producing cardboard boxes. Recently the company organized a contest for kids for the best design of a cardboard box and selected M winners. There are N prizes for the winners, each one carefully packed in a cardboard box (made by the ICPC, of course). The awarding process will be as follows:

  • All the boxes with prizes will be stored in a separate room.
  • The winners will enter the room, one at a time.
  • Each winner selects one of the boxes.
  • The selected box is opened by a representative of the organizing committee.
  • If the box contains a prize, the winner takes it.
  • If the box is empty (because the same box has already been selected by one or more previous winners), the winner will instead get a certificate printed on a sheet of excellent cardboard (made by ICPC, of course).
  • Whether there is a prize or not, the box is re-sealed and returned to the room.

The management of the company would like to know how many prizes will be given by the above process. It is assumed that each winner picks a box at random and that all boxes are equally likely to be picked. Compute the mathematical expectation of the number of prizes given (the certificates are not counted as prizes, of course).

Input

The first and only line of the input file contains the values of N and M ().

Output

The first and only line of the output file should contain a single real number: the expected number of prizes given out. The answer is accepted as correct if either the absolute or the relative error is less than or equal to 10-9.

Example(s)

sample input
sample output
5 7 
3.951424 

sample input
sample output
4 3 
2.3125 
时间: 2024-12-21 08:54:22

SGU 495. Kids and Prizes( 数学期望 )的相关文章

sgu 495 Kids and Prizes

计算出每个人得到礼物的概率,然后加起来即可 1 #include<iostream> 2 #include<string.h> 3 #include<algorithm> 4 #include<stdio.h> 5 using namespace std; 6 double dp[101010]; 7 int main(){ 8 int n,m; 9 while(cin>>n>>m){ 10 dp[1]=1; 11 for(int i

SGU 495 Kids and Prizes 概率DP 或 数学推理

题目链接:http://acm.sgu.ru/problem.php?contest=0&problem=495 有n个箱子 m个人 有两个思考的角度 1.从箱子的角度 对于一个箱子来说 不被选中的概率是((n-1)/n)^m 所以被选中的概率是(1 - ((n-1)/n)^m) 箱子之间是互相独立的 所以总期望是:n * (1 - ((n-1)/n)^m) [我是算样例然后无意中发现的规律 再证明] 2.从人的角度 从题目中看 人是one by one进去选的 所以可以看作有先后顺序 考虑动态

SGU 495. Kids and Prizes 期望

n个盒子 m个人轮流选 拿走盒子里的奖品 盒子再放回去 求得到奖品的期望 可以求没有被选到的奖品的期望 用n减去就是答案 #include <stdio.h> #include <iostream> #include <algorithm> #include <math.h> using namespace std; int main() { int n,m; while(scanf("%d%d",&n,&m)!=EOF)

SGU 495 Kids and Prizes 概率dp

题意: 有N个箱子放有礼物,M个人依次取.如果取到的箱子有礼物,则拿走礼物.无论有没有拿到礼物,都将箱子原状放回.(所以就有可能后面的人拿到前面的人拿过的箱子,然后就没得到奖品).问,最后能拿走的礼物数量的期望. 两种思路,给跪了,,,还是没有想出来.... m个人是独立的. 对于每个礼物不被人选中的概率为((n-1)/n)^m 那么不被选中的礼物数的期望就是 n*((n-1)/n)^m 所以答案就是 n-n*((n-1)/n)^m; 这个地方自己老想着求1/n,结果没转过来...orz 概率d

SGU495Kids and Prizes 数学期望

题意: 有n个奖品,m个人排队来选礼物,对于每个人,他打开的盒子,可能有礼物,也有可能已经被之前的人取走了,然后把盒子放回原处.为最后m个人取走礼物的期望. 题解: 本道题与之前的一些期望 DP 题目相比不同的是我们知道初始状态,却不知道终止状态. (第一个人一定会拿走一个礼物,而最后一个人不一定). 我们考虑顺推. 设 $F[i]$ 表示前 $i$ 个人拿完礼物的期望个数.分类讨论一下,考虑第 $i$ 个人的情况. $1.$ 没礼物可拿,期望为 $0$. $2.$ 有礼物拿, 概率为 $\fr

数学期望

数学期望又称均值(加权均值),例如 甲8环,9环,10环的概率分别为0.1,0.8,0.1,即权重,则加权均值为8*0.1+9*0.8+10*0.1=9:同理乙的加权均值为8.95 则甲的平均成绩优于乙 对于离散型随机变量 连续型随机变量

数学1——概率与数学期望

1.什么是数学期望? 数学期望亦称期望.期望值等.在概率论和统计学中,一个离散型随机变量的期望值是试验中每一次可能出现的结果的概率乘以其结果的总和. 这是什么意思呢?假如我们来玩一个游戏,一共52张牌,其中有4个A.我们1元钱赌一把,如果你抽中了A,那么我给你10元钱,否则你的1元钱就输给我了.在这个游戏中,抽中的概率是$\frac{1}{13} ( \frac{4}{52} ) $,结果是赢10元钱:抽不中概率是$\frac{12}{13}$,结果是亏1元钱.那么你赢的概率,也就是期望值是$-

poj3682:数学期望,O(1)做法附推导过程

这几天一直在磨蹭这题..第一个答案很容易,但在第二个答案我无法算出来了,于是只好求助于Zayin.Zayin又求助于我们年级里面的一个研究生数学老师..而现在终于算出来了,我看了看,自己也推出来几次了,先看题:) King Arthur's Birthday Celebration Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 2921 Accepted: 926 Description King Arthur is an

HDUBoard Game Dice (数学期望)

推出的公式是M^x*x/N,大概意思是M^x*x这些种可能后一定会找出一个裁判,在除以N为数学期望. 可能和数学公式还有关系. #include<stdio.h> #include<math.h> __int64 gcd(__int64 a,__int64 b){ return b == 0 ? a : gcd(b, a%b); } int main() { __int64 i,j,n,m,t,x,a,b,temp,sum; scanf("%I64d",&