HDU 5810 Balls and Boxes(盒子与球)

HDU 5810 Balls and Boxes盒子与球

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)


Description


题目描述


Mr. Chopsticks is interested in random phenomena, and he conducts an experiment to study randomness. In the experiment, he throws n balls into m boxes in such a manner that each ball has equal probability of going to each boxes. After the experiment, he calculated the statistical variance V asWhere  is the number of balls in the ith box, and  is the average number of balls in a box.

Your task is to find out the expected value of V.


Chopsticks先生突然对随机现象来了兴趣,还做了个实验来研究随机性。实验中,他将n个球等概率丢进m个盒子里。然后,他用下面的式子计算方差V

表示第i个盒子中球的数量,表示每个盒子中球的平均数。

你的任务就是找出V的期望。


Input


输入


The input contains multiple test cases. Each case contains two integers n and m (1 <= n, m <= 1000 000 000) in a line.

The input is terminated by n = m = 0.


多组测试用例。每个测试用例有一行两个整数n和m(1 <= n, m <= 1000 000 000)。

n = m = 0 时,输入结束。


Output


输出


For each case, output the result as A/B in a line, where A/B should be an irreducible fraction. Let B=1 if the result is an integer.


对于每个用例,输出一行结果A/B,A/B为不可约分数。结果为整数时,令B=1。


Sample Input - 输入样例


Sample Output - 输出样例


2 1
2 2
0 0


0/1
1/2


Hint


提示


In the second sample, there are four possible outcomes, two outcomes with V = 0 and two outcomes with V = 1.


在第二个样例中,有4种可能结果,两种V = 0和一种V = 1。

【题解】

类似二项分布的实验,得到所有可能的方差,再对方差取期望……等等,这不就是求二项分布的方差吗?(脑子一抽:所有可能 + 取期望 = 等概率)

二项分布D(X) = np(1-p)

p = 1/m 带入D(X) 得 

【代码 C++】

 1 #include <cstdio>
 2 __int64 GCD(__int64 a, __int64 b){
 3     __int64 c;
 4     while (c = a%b) a = b, b = c;
 5     return b;
 6 }
 7 int main(){
 8     __int64 n, m, g;
 9     while (scanf("%I64d%I64d", &n, &m), n + m){
10         n *= m - 1; m *= m;
11         g = GCD(n, m);
12         printf("%I64d/%I64d\n", n / g, m / g);
13     }
14     return 0;
15 }
时间: 2024-10-14 03:18:26

HDU 5810 Balls and Boxes(盒子与球)的相关文章

hdu 5810 Balls and Boxes 二项分布

Balls and Boxes Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 260    Accepted Submission(s): 187 Problem Description Mr. Chopsticks is interested in random phenomena, and he conducts an experi

HDU 5810 Balls and Boxes

n*(m-1)/(m*m) #pragma comment(linker, "/STACK:1024000000,1024000000") #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> #include<vector> #include<map> #include<set> #include<queue

hdu-5810 Balls and Boxes(概率期望)

题目链接: Balls and Boxes Time Limit: 2000/1000 MS (Java/Others)     Memory Limit: 65536/65536 K (Java/Others) Problem Description Mr. Chopsticks is interested in random phenomena, and he conducts an experiment to study randomness. In the experiment, he

hdu 4710 Balls Rearrangement (数学思维)

题意:就是  把编号从0-n的小球对应放进i%a编号的盒子里,然后又买了新盒子, 现在总共有b个盒子,Bob想把球装进i%b编号的盒子里.求重置的最小花费. 每次移动的花费为y - x ,即移动前后盒子编号的差值的绝对值. 算法: 题目就是要求                  先判断  n与  lcm(a,b)的大小,每一个周期存在循环,这样把区间缩短避免重复计算. 如果n>lcm(a,b)则   ans = (n/lcm)*solve(lcm)+solve(n%lcm) 否则   ans =

盒子放球

盒子放球问题 第一类: 将k个球放入n个不同的盒子中,每个盒子放球数>=0,求方法数 假设n个盒子分别放x1,x2,x3...xn,则x1+x2+x3+...+xn=k,令yi=xi+1(1<=i<=n),则yi>=1且y1+y2+...+yn=n+k,相当于求yi这个方程的解组数,可以看成插板问题,往n+k个物品中插入n-1个板,所以答案是C(n+k-1,n-1)=C(n+k-1,k) /* *输入说明:k个相同的球放入n个不同的盒子 *输入每行有两个正整数n和k */ int

博客园首页新随笔联系管理订阅 随笔- 524 文章- 0 评论- 20 hdu-5810 Balls and Boxes(概率期望)

Balls and Boxes Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 798    Accepted Submission(s): 527 Problem Description Mr. Chopsticks is interested in random phenomena, and he conducts an experi

洛谷 P1287 盒子与球

P1287 盒子与球 题目描述 现有r个互不相同的盒子和n个互不相同的球,要将这n个球放入r个盒子中,且不允许有空盒子.问有多少种方法? 例如:有2个不同的盒子(分别编为1号和2号)和3个不同的球(分别编为1.2.3号),则有6种不同的方法: 输入输出格式 输入格式: 两个整数,n和r,中间用空格分隔.(0≤n, r≤10) 输出格式: 仅一行,一个整数(保证在长整型范围内).表示n个球放入r个盒子的方法. 输入输出样例 输入样例#1: 复制 3 2 输出样例#1: 复制 6思路:动规.f[i]

【HDU 5810多校】Balls and Boxes(打表/数学)

1.打表找规律,下面是打表程序: #include <iostream> #include <cstdio> #define ll long long #define N 100005 using namespace std; ll n,m,b[N],ans,num; ll sqr(ll x) { return x*x; } void dfs(ll r){ if(r==0){ num++; for(int i=1;i<=m;i++) ans+=sqr(b[i]); retur

盒子放球的DP

URAL1114 题目大意: 有N个盒子,有红色和蓝色两种颜色的球.红球有A个,篮球有B个.现在随意的向盒子里放球, 每个盒子可以放一种颜色的球,也可以放两种颜色的球,也可以不放球.球不必全都放进盒子里.问:总共有多少种方法. 状态dp[i][j][k] 表示向i个盒子里放j个篮球和k个红球的方案数目 状态转移方程:dp[i][j][k]=对dp[i-1][jj][kk] (0<=jj<=j,0<=kk<=k) 求和 最终结果是:在n个盒子里放  不定数目的球的种类数和即   对d