有趣的网球输赢概率题
登录 | 论坛导航 -> 华新鲜事 -> 求学狮城 | 本帖共有 22 楼,当前显示第 17 楼 : 从楼主开始阅读 : 本帖树形列表 : 返回上一页
作者:spinach (等级:8 - 融会贯通,发帖:1955) 发表:2008-12-04 11:19:54  17楼 
应该是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% 1000000
有没有办法把平局也放进去??
请问:有没有办法把平局也放进去
CASE 1 A - B >= 2
Case 2 B - A >= 2
Case 3 A = B ---> 放回原先的循环

System.out.println((double) aWin * 100 / n + "%");

另外可否print bWin% ? draw?
路人拾遗
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版只看此人从这里展开收起列表

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



请登录后回复:帐号   密码