原题:
已知甲乙两个网球手,每盘比赛甲胜出的几率是2/3,乙是1/3,每胜一盘的一分两人比赛,当一人比另一人多得两分时,前者胜请问甲胜的几率是多少?(注:需要考虑两人平局的情况)
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("甲胜:" + aWin + " 乙胜:" + bWin + " 甲胜百分比:" + (aWin / n) * 100 + "%");
}
}
以下是几个测试的输入结果
100
81 19 0%
100000
79933 20067 0%
10000000
8001436 1998564 0%
1000
795 205 0%
1000
792 208 0%为什么每次那个百分比都是0?真是怪异
已知甲乙两个网球手,每盘比赛甲胜出的几率是2/3,乙是1/3,每胜一盘的一分两人比赛,当一人比另一人多得两分时,前者胜请问甲胜的几率是多少?(注:需要考虑两人平局的情况)
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("甲胜:" + aWin + " 乙胜:" + bWin + " 甲胜百分比:" + (aWin / n) * 100 + "%");
}
}
以下是几个测试的输入结果
100
81 19 0%
100000
79933 20067 0%
10000000
8001436 1998564 0%
1000
795 205 0%
1000
792 208 0%为什么每次那个百分比都是0?真是怪异
或者double