acm概率计算描述A和B两个人参加一场答题比赛.比赛的过程大-查字典问答网
分类选择

来自刘安心的问题

  acm概率计算描述A和B两个人参加一场答题比赛.比赛的过程大概是A和B两个人轮流答题,A先答.一旦某人没有正确回答问题,则对手立即获胜.所以,两个人比赛的时候在一定程度上靠的是运气,希望

  acm概率计算

  描述

  A和B两个人参加一场答题比赛.比赛的过程大概是A和B两个人轮流答题,A先答.一旦某人没有正确回答问题,则对手立即获胜.

  所以,两个人比赛的时候在一定程度上靠的是运气,希望自己晚点碰到不会的题目,而对手早点碰到不会的题目.

  为了简化问题,我们假设A答对问题的概率为a%,B答对问题的概率为b%,请问最后A、B获得比赛胜利的概率各为多少?

  输入

  先输入一个整数T,表示有T组测试数据.

  接下来T行,每行输入两个整数a,b,表示A,B获胜的概率分别为a%和b%,其中0

5回答
2020-02-02 21:08
我要回答
请先登录
蔡庆生

  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)

2020-02-02 21:12:02
刘安心

  能说一下原因吗?

2020-02-02 21:15:13
蔡庆生

  哪一步没有看懂?

  #include <stdio.h>

  int greatest_common_divisor(int a, int b) {

  x09int c;

  x09while (b != 0) {

  x09x09c = a % b;

  x09x09a = b;

  x09x09b = c;

  x09}

  x09return a;

  }

  int main() {

  x09int a, b;

  x09int pafenzi, pafenmu, pbfenzi, pbfenmu;

  x09int t;

  x09scanf("%d", &t);

  x09while (t--) {

  x09x09scanf("%d%d", &a, &b);

  x09x09pafenzi = a * (100 - b);

  x09x09pafenmu = 10000 - a * b;

  x09x09pbfenzi = 100 * (100 - a);

  x09x09pbfenmu = pafenmu;

  x09x09a = greatest_common_divisor(pafenmu, pafenzi);

  x09x09b = greatest_common_divisor(pbfenmu, pbfenzi);

  x09x09printf("%d/%d %d/%dn", pafenzi / a, pafenmu / a, pbfenzi / b, pbfenmu / b);

  x09}

  }

2020-02-02 21:20:10
刘安心

  p=p1+p2*p为什么等于p1/(1—p2)

2020-02-02 21:23:58
蔡庆生

  假设最终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)

2020-02-02 21:28:24

最新问答

推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  •