有趣的网球输赢概率题已知甲乙两个网球手,每盘比赛甲胜出的几率是2/3,乙是1/3,每胜一盘的一分
两人比赛,当一人比另一人多得两分时,前者胜
请问甲胜的几率是多少?(注:需要考虑两人平局的情况)[spinach (11-28 23:11, Long long ago)]
[ 传统版 |
sForum ][登录后回复]1楼
每胜一盘的[得]一分,另甲胜指甲胜整场比赛[spinach (11-28 23:13, Long long ago)] [ 传统版 | sForum ][登录后回复]2楼
一场比赛多少盘?还是不限制盘数?[香陵居士 (11-30 3:17, Long long ago)] [ 传统版 | sForum ][登录后回复]3楼
若不限制,甲80%,乙20%;若限制,自己算把每2盘看成一回合
甲胜: (2/3)*(2/3) = 4/9
乙胜: (1/3)*(1/3) = 1/9
平: 1 - 4/9 - 1/9 = 4/9
若出现胜负,结束;若平,继续下一回合
n回合后
甲胜概率为:
4/9 + (4/9)*(4/9) + [(4/9)^2]*(4/9) + ... + [(4/9)^(n-1)]*(4/9) = (4/5)*[1-(4/9)^n]
乙胜概率为
1/9 + (4/9)*(1/9) + [(4/9)^2]*(1/9) + ... + [(4/9)^(n-1)]*(1/9) = (1/5)*[1-(4/9)^n]
平局概率为
(4/9)^n
n取无穷大,则
甲胜概率80%,乙胜概率20%
n=6,则...自己算吧
……第5000贴竟然是这样的……
[冷色蓝天 (11-30 9:37, Long long ago)]
[ 传统版 |
sForum ][登录后回复]4楼
考虑到状态稳定的时候前一盘甲领先乙一分的概率是乙领先甲一分概率的两倍,所以这一盘甲胜对乙胜的概率是4:1
所以甲80%,乙20%[icky (12-1 13:24, Long long ago)]
[ 传统版 |
sForum ][登录后回复]5楼
(引用 icky:考虑到状态稳定的时候前一盘甲领先乙一分的概率是乙领先甲一分概率的两倍,所以这一盘甲胜对乙胜的概率是4:1 所以甲80%,乙20%)这个好[胡萝卜 (12-1 16:53, Long long ago)] [ 传统版 | sForum ][登录后回复]6楼
(引用 香陵居士:一场比赛多少盘?还是不限制盘数?)不限盘数[spinach (12-3 8:19, Long long ago)] [ 传统版 | sForum ][登录后回复]7楼
我的答案跟大家一样4:1;可是好像不对原是一道证明题:
证明甲胜出的几率大概是6:1 (然后括号里面写需要考虑平局的情况)
我自己是这样做的:
甲:乙 = 2:0,3:1,4:2 。。。。。。
甲:乙 = 2:0 AA 只有这种情况 概率 = (2/3)^2
甲:乙 = 3:1 ABAA BAAA 2种情况 概率 = 2(2/3)^3(1/3)
甲:乙 = 4:2 ABABAA ABBAAA BABAAA BAABAA 4种情况 概率 = 4(2/3)^4(1/3)^2
归纳
甲:乙 = (n+2):n 有2^n种可能 概率 = 2^n(2/3)^(n+2)(1/3)^n = (2/3)^(2n+2)
等比数列
a1= 4/9
q = 4/9
S甲 = 4/5
同理 S乙 = 1/5
可是我没有考虑平局的问题!!!
[spinach (12-3 8:35, Long long ago)]
[ 传统版 |
sForum ][登录后回复]8楼
if you know sth about stochastic, this is a stopping-time problemP(s_t = 2 ) = { (q/p)^0 - (q/p)^(-1/2) } / {(q/p)^2 - (q/p)^(-1/2) }
p = 2/3 ; q = 1/3;
answer is .8[1300cc (12-3 10:18, Long long ago)]
[ 传统版 |
sForum ][登录后回复]9楼
(引用 spinach:我的答案跟大家一样4:1;可是好像不对原是一道证明题: 证明甲胜出的几率大概是6:1 (然后括号里面写需要考虑平局的情况) 我自己是这...)如果不限制盘数的话,平局的概率为零[香陵居士 (12-3 10:31, Long long ago)] [ 传统版 | sForum ][登录后回复]10楼
应该是80%吧,一个小程序模拟进行10000000场比赛输出结果接近80%java代码如下:
import java.util.*;
public class Tennis
{
public static void main(String[] args)
{
Random random = new Random();
int aWin = 0, bWin = 0;
int n = (new Scanner(System.in)).nextInt(); // n为自定义比赛次数
for (int i = 0; i < n; i++)
{
int aScore = 0, bScore = 0; // 每场比赛开始时甲乙得分各为0
while (Math.abs(aScore - bScore) < 2) // 直到有人领先2分时,该场比赛结束
{
int game = Math.abs(random.nextInt() % 3); // 随机生成0,1,2间的一个整数
if (game == 0 || game == 1) // 每盘比赛甲胜出的几率是2/3
aScore++; // 甲得一分
else
bScore++; // 否则乙得一分
if (aScore - bScore >= 2) // 若甲领先2分,甲胜一场比赛
aWin++;
else if (bScore - aScore >= 2) // 若乙领先2分,乙胜一场
bWin++;
}
}
System.out.println((double) aWin * 100 / n + "%");
}
}
以下是几个测试结果:
100
84.0%
1000
81.5%
100000
79.84%
10000000
79.98379%
[MetalGearSnake (12-3 11:08, Long long ago)]
[ 传统版 |
sForum ][登录后回复]11楼
(引用 1300cc:if you know sth about stochastic, this is a stopping-time problemP(s_t = 2 ) = { (q/p)^0 - (q/p)^(-1/2) } / {(q/p)^2 - (q/p)^(-1...)what is the general formula for the stopping time?
Was my calculation wrong? Did I interpret your equation wrongly?
The answer was 0.356 not 0.8
BTW, how about the winning probability of the second player?
Thanks
[spinach (12-4 9:31, Long long ago)]
[ 传统版 |
sForum ][登录后回复]12楼
(引用 spinach:what is the general formula for the stopping time?
Was my calculation wrong? Did I interpret your equation wrongly?
The answ
...)it's in this waychange your -1/2 to -2.
p(first person win ) + p(2nd ppl win ) = 1;[1300cc (12-4 9:51, Long long ago)]
[ 传统版 |
sForum ][登录后回复]13楼
(引用 spinach:what is the general formula for the stopping time? Was my calculation wrong? Did I interpret your equation wrongly? The answ ...)yes. it's a typo in my first equation. should be -2 , not -1/2sorry for that.[1300cc (12-4 9:54, Long long ago)] [ 传统版 | sForum ][登录后回复]14楼
(引用 1300cc:it's in this waychange your -1/2 to -2. p(first person win ) + p(2nd ppl win ) = 1;)for stopping-time problems, there are no "draw"?[spinach (12-4 10:27, Long long ago)] [ 传统版 | sForum ][登录后回复]15楼
(引用 1300cc:if you know sth about stochastic, this is a stopping-time problemP(s_t = 2 ) = { (q/p)^0 - (q/p)^(-1/2) } / {(q/p)^2 - (q/p)^(-1...)试着写一般表达式,这样对吗?P(s_t = n ) = { (q/p)^0 - (q/p)^(-n) } / {(q/p)^n - (q/p)^(-n) }
p + q = 1
[spinach (12-4 10:32, Long long ago)]
[ 传统版 |
sForum ][登录后回复]16楼
(引用 MetalGearSnake:应该是80%吧,一个小程序模拟进行10000000场比赛输出结果接近80%java代码如下:
import java.util.*;
public class Tennis
{
public s...)有没有办法把平局也放进去??请问:有没有办法把平局也放进去
CASE 1 A - B >= 2
Case 2 B - A >= 2
Case 3 A = B ---> 放回原先的循环
System.out.println((double) aWin * 100 / n + "%");
另外可否print bWin% ? draw? [spinach (12-4 11:19, Long long ago)]
[ 传统版 |
sForum ][登录后回复]17楼
(引用 spinach:for stopping-time problems, there are no "draw"?)no drawthere's no draw, since there must be a stopping time. else stopping time is infinity.
for your formula above, the left and right boundary may not be both n, sometimes can be different value.
[1300cc (12-4 13:07, Long long ago)]
[ 传统版 |
sForum ][登录后回复]18楼
(引用 spinach:有没有办法把平局也放进去??请问:有没有办法把平局也放进去
CASE 1 A - B >= 2
Case 2 B - A >= 2
Case 3 A = B ---> 放回原先的...)每场比赛要有局数限制才会产生平局的情况吧?如果加入每场比赛局数限制,修改后的代码如下:
import java.util.*;
public class Tennis
{
public static void main(String[] args)
{
Random random = new Random();
int aWin = 0, bWin = 0;
int n = (new Scanner(System.in)).nextInt(); // n为比赛场数
int m = (new Scanner(System.in)).nextInt(); // m为每场比赛回合数
for (int i = 0; i < n; i++)
{
int aScore = 0, bScore = 0, j = 0;
while (Math.abs(aScore - bScore) < 2 && j < m)
{
int game = Math.abs(random.nextInt() % 3);
if (game == 0 || game == 1)
aScore++;
else
bScore++;
if (aScore - bScore >= 2)
aWin++;
else if (bScore - aScore >= 2)
bWin++;
j++;
}
}
System.out.println((double) aWin / n * 100 + "%\n" +
(double) bWin / n * 100 + "%\n" + (100 - (double) (aWin + bWin) / n * 100) + "%\n");
}
}
如果限制10局,甲胜的概率貌似接近78.6几,几个测试结果:
100
10
75.0%
25.0%
0.0%
1000
10
79.10000000000001%
19.6%
1.2999999999999972%
10000
10
78.59%
19.45%
1.9599999999999937%
100000
10
78.513%
19.744999999999997%
1.7420000000000044%
10000000
10
78.61402%
19.653409999999997%
1.7325699999999955%
10000000
10
78.63001%
19.63833%
1.731660000000005%
10000000
10
78.60665%
19.65362%
1.7397299999999944%[MetalGearSnake (12-4 15:15, Long long ago)]
[ 传统版 |
sForum ][登录后回复]19楼
题目修改谢谢大家解答原题,有兴趣的可以继续考虑修改后的问题
已知甲乙两个网球手,每盘比赛甲胜出的几率是2/3,乙是1/3,每胜一盘的一分
两人比赛,当一人比另一人至少多得两分时(比赛是4分制 - 即网球里面的15-30-40-50,平局情况下不受此限),前者胜
请问甲胜的几率是多少?(注:需要考虑两人平局的情况) 答案是差不多6:1
[spinach (12-14 19:00, Long long ago)]
[ 传统版 |
sForum ][登录后回复]20楼