1 问题描述
5支球队[A, B, C, D, E]参加状元抽签,编写程序实现A抽中状元签概率为25%,B抽中状元签概率20%,C抽中状元签概率15%,D抽中状元签概率10%,E抽中状元签概率5%。
具体要求:
-
用js对象配置每个球队抽中状元签的概率。
-
测试抽签很多次,输出球队抽中状元签的次数,检查是否和概率对应。
2 实现思路
2.1 随机数实现概率分配
考虑到每个球队拥有不同的中签概率,此处可以采用蒙特卡洛方法,对每一个球队定义一个取值区间,若随机数落在相应区间中,则可认为中签。对于此题,可以将A队的取值区间设置为[0, 0.25),B的区间为[0.25, 0.45),C的区间为[0.45, 0.6),D的区间为[0.6, 0.7),E的区间为[0.7, 0.75)。
2.2 结果输出
在多数情况下,我们可以使用多个对象管理不同球队的中签次数,但当球队数量较多时,建议采用数组对取值区间以及中签次数进行管理。同样,对于结果也可以采用循环的方式依次输出。
3 代码展示
3.1 index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">