acm 概率计算描述A和B两个人参加一场答题比赛.比赛的过程大概是A和B两个人轮流答题,A先答.一旦某人没有正确回答问题
来源:学生作业帮 编辑:大师作文网作业帮 分类:数学作业 时间:2024/09/30 14:17:38
acm 概率计算
描述
A和B两个人参加一场答题比赛.比赛的过程大概是A和B两个人轮流答题,A先答.一旦某人没有正确回答问题,则对手立即获胜.
所以,两个人比赛的时候在一定程度上靠的是运气,希望自己晚点碰到不会的题目,而对手早点碰到不会的题目.
为了简化问题,我们假设A答对问题的概率为a%,B答对问题的概率为b%,请问最后A、B获得比赛胜利的概率各为多少?
输入
先输入一个整数T,表示有T组测试数据.
接下来T行,每行输入两个整数a,b,表示A,B获胜的概率分别为a%和b%,其中0
描述
A和B两个人参加一场答题比赛.比赛的过程大概是A和B两个人轮流答题,A先答.一旦某人没有正确回答问题,则对手立即获胜.
所以,两个人比赛的时候在一定程度上靠的是运气,希望自己晚点碰到不会的题目,而对手早点碰到不会的题目.
为了简化问题,我们假设A答对问题的概率为a%,B答对问题的概率为b%,请问最后A、B获得比赛胜利的概率各为多少?
输入
先输入一个整数T,表示有T组测试数据.
接下来T行,每行输入两个整数a,b,表示A,B获胜的概率分别为a%和b%,其中0
A赢的概率是
a * (100 - b) / (10000 - a * b)
B赢的概率是
100 * (100 - a) / (10000 - a * b)
假设A赢的概率是P
A在第一轮直接取胜的概率是
P1 = (a / 100) * (1 - b / 100)
第一轮AB两人都回答正确的概率是
P2 = (a / 100) * (b / 100) = a * b / 10000
此时第二轮将重新回到开始的时候的状态,所以概率上有以下的关系
P = P1 + P2 * P
即
P = P1 / ( 1 - P2)
= (a / 100) * (1 - b / 100) / (1 - a * b / 10000 )
= a * (100 - b) / (10000 - a * b)
再问: 能说一下原因吗?
再答: 哪一步没有看懂?#include <stdio.h>
int greatest_common_divisor(int a, int b) {
\x09int c;
\x09while (b != 0) {
\x09\x09c = a % b;
\x09\x09a = b;
\x09\x09b = c;
\x09}
\x09return a;
}
int main() {
\x09int a, b;
\x09int pafenzi, pafenmu, pbfenzi, pbfenmu;
\x09int t;
\x09scanf("%d", &t);
\x09while (t--) {
\x09\x09scanf("%d%d", &a, &b);
\x09\x09pafenzi = a * (100 - b);
\x09\x09pafenmu = 10000 - a * b;
\x09\x09pbfenzi = 100 * (100 - a);
\x09\x09pbfenmu = pafenmu;
\x09\x09a = greatest_common_divisor(pafenmu, pafenzi);
\x09\x09b = greatest_common_divisor(pbfenmu, pbfenzi);
\x09\x09printf("%d/%d %d/%d\n", pafenzi / a, pafenmu / a, pbfenzi / b, pbfenmu / b);
\x09}
}
再问: p=p1+p2*p为什么等于p1/(1—p2)
再答: 假设最终A获胜的概率是P
我们看第一轮的比赛,A可能直接输掉,概率是P_输 = 1 - a / 100A可能直接赢了P_赢 = a / 100 * (1 - b / 100)剩下的结果就是这轮白玩了,等于重新开始游戏,此时A获胜的概率仍然应该是P
那么就有P = P_赢 + (1 - P_输 - P_赢) * P p = p1 + p2 * p
=> (1 - p2) * p = p1
=> p = p1 / (1 - p2)
a * (100 - b) / (10000 - a * b)
B赢的概率是
100 * (100 - a) / (10000 - a * b)
假设A赢的概率是P
A在第一轮直接取胜的概率是
P1 = (a / 100) * (1 - b / 100)
第一轮AB两人都回答正确的概率是
P2 = (a / 100) * (b / 100) = a * b / 10000
此时第二轮将重新回到开始的时候的状态,所以概率上有以下的关系
P = P1 + P2 * P
即
P = P1 / ( 1 - P2)
= (a / 100) * (1 - b / 100) / (1 - a * b / 10000 )
= a * (100 - b) / (10000 - a * b)
再问: 能说一下原因吗?
再答: 哪一步没有看懂?#include <stdio.h>
int greatest_common_divisor(int a, int b) {
\x09int c;
\x09while (b != 0) {
\x09\x09c = a % b;
\x09\x09a = b;
\x09\x09b = c;
\x09}
\x09return a;
}
int main() {
\x09int a, b;
\x09int pafenzi, pafenmu, pbfenzi, pbfenmu;
\x09int t;
\x09scanf("%d", &t);
\x09while (t--) {
\x09\x09scanf("%d%d", &a, &b);
\x09\x09pafenzi = a * (100 - b);
\x09\x09pafenmu = 10000 - a * b;
\x09\x09pbfenzi = 100 * (100 - a);
\x09\x09pbfenmu = pafenmu;
\x09\x09a = greatest_common_divisor(pafenmu, pafenzi);
\x09\x09b = greatest_common_divisor(pbfenmu, pbfenzi);
\x09\x09printf("%d/%d %d/%d\n", pafenzi / a, pafenmu / a, pbfenzi / b, pbfenmu / b);
\x09}
}
再问: p=p1+p2*p为什么等于p1/(1—p2)
再答: 假设最终A获胜的概率是P
我们看第一轮的比赛,A可能直接输掉,概率是P_输 = 1 - a / 100A可能直接赢了P_赢 = a / 100 * (1 - b / 100)剩下的结果就是这轮白玩了,等于重新开始游戏,此时A获胜的概率仍然应该是P
那么就有P = P_赢 + (1 - P_输 - P_赢) * P p = p1 + p2 * p
=> (1 - p2) * p = p1
=> p = p1 / (1 - p2)
acm 概率计算描述A和B两个人参加一场答题比赛.比赛的过程大概是A和B两个人轮流答题,A先答.一旦某人没有正确回答问题
A.B.C.D.E五人参加乒乓球比赛,每两人都要赛一场,按规定胜一场得2分,输一场得0分.已知比赛结果如下:
甲乙丙丁四人分A,B两组参加比赛比赛,每组两人,甲和乙都分在A组的概率
A.B.C.D四支足球队进行足球比赛,每两个队都要比赛一场,如果A队二胜一负,B队二胜一和,C队一胜二负,那么D队的成绩
2队比赛(A和B),三局两胜制(连胜两局终止比赛) 问:既猜对哪队赢,又猜对比分的概率是多少?
A、B、C、D、E五人参加乒兵球赛.每两个人之间都要赛一盘.规定胜者得2分,负者得0分.现在知道比赛结果是:A和B并列第
A、B、C、D、E五人参加乒乓球比赛,每两人都要赛一场,并且只赛一场,规定胜者得2分,负者得0分
A,B,C,D四个人分组参加比赛,每两个人一组,分甲乙两个组
甲乙丙丁四人分A,B两组参加比赛比赛,每组两人,甲分在A组的概率
A、B、C、D四人进行中国象棋比赛,每两个人之间都要赛一场.结果A胜了D,并且A、B
排球比赛的规则是5局3胜制,a、b两队每局比赛获胜的概率分别为2/3和1/3,求b队以 3:2获胜的概率.
A,B C D四个人进行比赛,第两个人都要打一场,A比B少胜一场,B比C少胜一场,C比D少胜一场,问D胜了几场.