有趣的网球输赢概率题
登录 | 论坛导航 -> 华新鲜事 -> 求学狮城 | 本帖共有 22 楼,当前显示第 11 楼 : 从楼主开始阅读 : 本帖树形列表 : 返回上一页
作者:MetalGearSnake (等级:3 - 略知一二,发帖:128) 发表:2008-12-03 11:08:47  11楼  评分: 
应该是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%
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版只看此人从这里展开收起列表

本帖共有 22 楼,当前显示第 11 楼,本文还有 N-1 层楼,要不你试试看:点击此处阅读更多 >>



请登录后回复:帐号   密码