Python之体育竞技分析

2023-10-26

来源:Python语言程序设计 -嵩天

一、问题描述

需求:高手过招,胜负只在毫厘。如何科学地分析体育竞技比赛?
输入:球员的水平
输出:预测比赛成绩

二、具体分析

在这里插入图片描述

三、代码实现


from random import random
# 生成随机数

### 介绍程序 ###
def printIntro():
    print("这个程序模拟两个选手A和B的竞技比赛")
    print("比赛规则:若A发球,A接球成功,则A总分+1,A继续发球;A接球失败,则B发球。总分先达15分者获胜!")
    print("程序运行需要A和B的能力值(以0到1之间的小数表示)")


### 输入选手A、B的能力值以及比赛次数 ###
def getInputs():
    a = eval(input("请输入选手A的能力值(0-1): "))
    b = eval(input("请输入选手B的能力值(0-1): "))
    n = eval(input("模拟比赛的场次: "))
    return a, b, n
    

### 模拟n局比赛
def simNGames(n, probA, probB):
    winsA, winsB = 0, 0
    for i in range(n):
        scoreA, scoreB = simOneGame(probA, probB)
        if scoreA > scoreB:
            winsA += 1
        else:
            winsB += 1
    return winsA, winsB
    # scoreA,scoreB:选手A、B的总分
    # winsA,winsB:选手A、B的获胜比率

## 比赛结束 ##
def gameOver(a,b):
    return a==15 or b==15

## 模拟一局比赛 ##
def simOneGame(probA, probB):
    scoreA, scoreB = 0, 0
    # 选手A、B的得分
    serving = "A"
    # 选手A发球
    # 在simNGames(n, probA, probB)函数中的for循环中,serving不断地被新值覆盖
    while not gameOver(scoreA, scoreB):
        if serving == "A":
            if random() < probA:
            # random():生成一个随机数
            # 相当于生成一个随机球判断该球是否在选手A的能力范围内
                scoreA += 1
            else:
                serving="B"
        else:
            if random() < probB:
                scoreB += 1
            else:
                serving="A"
    return scoreA, scoreB


### 预测选手A、B获胜的次数和比率 ###
def printSummary(winsA, winsB):
    n = winsA + winsB
    print("竞技分析开始,共模拟{}场比赛".format(n))
    print("选手A获胜{}场比赛,占比{:0.1%}".format(winsA, winsA/n))
    print("选手B获胜{}场比赛,占比{:0.1%}".format(winsB, winsB/n))
    
    
def main():
    printIntro()
    probA, probB, n = getInputs()
    winsA, winsB = simNGames(n, probA, probB)
    printSummary(winsA, winsB)
main()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python之体育竞技分析 的相关文章

  • RestfulTool插件使用详解

    1 全局搜索 2 提供了一个 Services tree 的API接口显示窗口 右侧会有RestServices侧边栏 点击后会显示当前项目所有请求地址 可以进行输入查询 然后会直接把请求方式 地址以及参数列出来 默认请求服务器为本机 lo
  • 【python】socket-传输多个文件、大文件

    socket 传输多个文件 大文件 0 前言 1 发送单个文件流程 2 关于发送大文件 本地读取时报错 MemoryError 3 关于粘包 问题背景 排错过程 解决方案 4 备注 换算表 0 前言 看过挺多个发文件的例子 但是基本都是发单
  • 每日博客 :>

    1 交换数组 define CRT SECURE NO WARNINGS 1 include
  • 计算机网络34-学习笔记-IP地址

    IP地址属于网络层 这里主要介绍IP地址作用 与MAC地址配合 主机H1将数据包发送给路由器R1 在网络层封装的IP数据报首部中 源IP地址应填写主机H1的IP地址IP1 目的IP地址应填写主机H2的IP地址IP2 在数据链路层中源MAC地
  • python装饰器

    装饰器是python一个重要的部分 由它的名称我们就可以大致了解到它的功能 拓展其他函数 装饰器可以让我们的代码更加简洁 也更加pythonic 首先 我们先回顾一下基础概念 一 在python中 如果调用一个函数不带括号时 调用的是这个函
  • R语言多任务处理与并行运算包——foreach

    作者简介Introduction 杜雨 EasyCharts团队成员 R语言中文社区专栏作者 兴趣方向为 Excel商务图表 R语言数据可视化 地理信息数据可视化 个人公众号 数据小魔方 微信ID datamofang 数据小魔方 创始人
  • SpringBoot原理

    1 SpringBoot实现原理 SpringBoot是由自动配置和启动器以及大量注解实现 Stater stater就是启动器 也就是我们在pom xml文件中引入的带stater的依赖 springboot框架会根据依赖加载与该启动器有
  • Shell脚本入门

    Shell脚本入门 1 基本概念 Shell是一门弱类型 解释型 非编译型语言 Shell中无数据类型 Shell的作用是解释执行用户的命令 Shell执行命令的方式有两种 1 交互式 用户输入一条命令 shell就解释执行一条 2 批处理
  • 名为dash的蓝色插嘴小机器人_全球最出色的十大教育机器人

    2016年 阿尔法狗战胜围棋世界冠军李世石 成为人工智能发展的标志性事件 万物互联的时代 人工智能正掀起一场影响深刻的技术革命 谷歌 苹果 BAT 华为巨头们纷纷布局人工智能 有人猜测 互联网 过后 我们可能会迎来机器人 听到这个消息 爸爸
  • [PCIe] SR-IOV (单根虚拟化) 及linux驱动浅析(device的PF和VF及其驱动)

    网上从服务器和虚拟化层面介绍SR IOV应用的文章很多了 本文重点从支持SR IOV的设备 EP 及其驱动来讨论 对于SR IOV的设备 EP 来说 无非就是一个device通过物理功能 PF 虚拟出关联的若干个虚拟功能 VF host的驱
  • 某公司的雇员分为以下若干类: Employee:这是所有员工总的父类, 属性: 员工的姓名,员工的生日月份。 方法:getSalary(

    代码 某公司的雇员分为以下若干类 Employee 这是所有员工总的父类 属性 员工的姓名 员工的生日月份 方法 getSalary intmonth 根据参数月份来确定工资 如果该月员工过生日 则公司会额外奖励100 元 Salaried
  • 在proteus中继电器的驱动与使用

    在进行proteus仿真驱动继电器时候 因为第一次接触和学习继电器遇到了无论采用电源驱动还是三极管放大驱动都无法驱动的问题 所以就查了继电器的资料和proteus中的默认设置 发现原来是proteus中继电器默认驱动电压为12V 所以我们需
  • CF 709C

    感谢这个题让我进了前1000 思路 特殊条件切入 一开始想跑网络流 但边数 点数太多 所以就需要找此题和常规网络流的区别 看到 M 2 gt 尽可能使用M 2这个条件构造解 gt 少于M 2的全选 gt 剩下的全是大于M 2的 gt 如果每
  • linux-docker

    unix liunx windows linux 文件系统 所有的资源都是目录在 root 根目录下 一 指令 ip addr ifconfig cd ls vim sudo 管理员身份 代表换行输入 pwd 查看所在目录 sudo sys
  • 12306模拟登陆一直提示系统繁忙_12306买高铁火车票显示待核验怎么办,最新解决方案...

    知道有些人没耐心 先说解决核心是12306里面人脸识别 亲测有效 全文没几个字一定要看不用去车站走冤枉路啊 身份信息不能自动核验 相信吃过亏的不止我一个 网上找了很多方法不行 问客服也没用 终于自己找到一个方法 相继解决了我妈和我朋友的待核
  • Maven项目中properties文件的加载方式

    Maven项目中 读取properties配置文件 1 properties文件在src main java的根目录中时加载文件使用 PropertyConfigurator configure log4j properties 2 pro
  • FFmpeg进阶: 音频滤镜大全

    在做音频处理模块的时候 为了对声音进行优化处理 我很多时候会使用各种算法对音频进行变换 效果包括变音变调 声音降噪等等 其实FFmpeg库里的滤镜模块包含了很多有用的音频滤镜算法 这对于提升开发效率避免重复造轮子是很有帮助的 这里翻译了一下
  • Android apk 项目一键打包并上传到蒲公英

    项目一键打包并上传到蒲公英 缘由 测试流程由 打包 找包准备上传 填写更新信息 然后上传 过于复杂 所以想要简化开发 阅读须知 需要读者了解如何在项目里面建立一个空的gradle plugin的过程 否则这篇文章不适合你 开始分析 我想要的
  • jdbc控制自动提交功能

    import java sql Connection import java sql DriverManager import java sql ResultSet import java sql SQLException import j

随机推荐

  • opencv-python入门学习(1)

    opencv python入门 环境安装与配置 图像入门 图片的读取 显示和保存 cv imread 读取图像 cv imshow 显示图像 cv imwrite 储存图像 视频的读取 显示和保存 从摄像机 文件中读取并显示视频 保存编辑后
  • npm安装composer-rest-server等出现错误node-pre-gyp install --fallback-to-build --library

    npm安装composer rest server等出现错误node pre gyp install fallback to build library grpc 1 10 1 install usr local lib node modu
  • 20大中国式弱点营销

    什么是弱点营销 宇宙的精灵 万物的灵长 说的是人类 但现实中 人性的弱点也不少 贪婪 恐惧 嫉妒 懒惰 好色 贪慕虚荣 难抵诱惑 害怕孤独 热爱免费 重视等级 迷信专家 崇拜名人 喜随波逐流 关于人性的一切弱点 正在被消费社会利用和营销 一
  • vector中find 的用法

    vector没有自带的find函数 需要用普通的find函数 使用如下 vector
  • CH2-Java编程基础(7个案例实现)

    案例2 1 库房出入货物程序设计 案例介绍 任务描述 现要对华为和小米两种手机产品进行入库 本案例要求编写一个模拟商品入库的程序 可以在控制台输入入库商品的数量 最后打印出仓库中所有商品详细信息以及所有商品的总库存数和库存商品总金额 商品信
  • 斗地主发牌算法JAVA

    首先定义一个卡牌类 public class Card private String numb private String color private int index public Card public Card String nu
  • 【vue】使用了 keep-alive 的 include,但是切换 router-view,页面还是会刷新

  • 二分图最大匹配与最大独立集

    一 概念部分 1 什么是二分图 通俗的说法 就是可以把图分成两部分 每一部分任意两点之间没有关系 同一部落 两部分之间点可能存在多种关系 2 怎么判断二分图 1 理论判定 如果某个图为二分图 那么它至少有两个顶点 且其所有回路的长度均为偶数
  • Ansible-基本概述

    为什么要自动化运维 纯手动软件安装部署方式 我们以 10 台机器部署 Nginx 为例 部署步骤如下 1 通过 ssh 登录一台机器 2 yum install y nginx 或者 获取安装包自行编译安装 3 配置 Nginx 4 启动
  • 微信小程序知识点GET

    1 app json中的pages用来设置小程序包含哪些页面以及页面的路径 window用来设置默认页面的窗口表现形式 tabBar用来设置小程序底部tab的表现 2 app js中的App 函数用来注册一个小程序 接受的对象参数用来指定小
  • mstsc远程报:这可能是由于CredSSP 加密Oracle修正的两种完美解决方法

    win10很完美 用的也很舒服 当然人无完人 也总有不尽如人意的时候 比如说我们经常用的远程mstsc 就出现了一个坑 既然出现坑了 我们就得把坑解决掉吧 下面就记录一下这个坑的解决方法 本文地址 https www cnblogs com
  • vue.js --父子组件通信

    目录 父子组件通信 父组件向子组件通信 子组件通过props接收 子组件向父组件通信 emit自定义事件 v model改造 emit传递父组件数据 emit传递单个父组件数据 emit传递多个父组件数据 总结 父子组件通信 父子组件通信
  • 线程的状态

    线程共有六种状态 初始状态 实现Runnable接口和继承Thread可以得到一个线程类 new一个实例出来 线程就进入了初始状态 2 1 就绪状态 就绪状态只是说你资格运行 调度程序没有挑选到你 你就永远是就绪状态 调用线程的start
  • mybatis泛型DAO接口

    本文将记录mybatis整合spring的泛型DAO接口 通过BasicDAOImpl实现类提供CRUD功能 其他DAO只需要继承和扩展BasicDAOImpl BasicDao接口定义 public interface BasicDAO
  • win10系统下将DMG转为ISO镜像——(虚拟机黑苹果操作)

    1 下载镜像 http www msdn3 com 6 20190826 这个网站超级好用 2 下载后为dmg文件 如果可以直接下载iso文件的可以跳过转换步骤 3 dmg文件转iso文件 1 下载DMG2IMG 32位 64位版Windo
  • loadrunner接口压测脚本编写模板

    接口报文 Action web reg save param return code LB res code RB Search Body Ord 1 LAST lr start transaction httpRequest web ad
  • jdbc连接数据库mysql的问题_JDBC连接Mysql数据库出现的问题汇总

    MySQL 前言 最近安装了一个 mysql 8 0 版本的数据库 在程序中连接的时候可谓是状况不断 之前也会遇到一些问题 这里就对使用 JDBC 连接mysql 会出现的问题做一个汇总 在此之前说明一下环境 开发工具 IDEA mysql
  • Selenium自动化测试 —— 通过cookie绕过验证码的操作

    验证码的处理 对于web应用 很多地方比如登录 发帖都需要输入验证码 类型也多种多样 登录 核心操作过程中 系统会产生随机的验证码图片 进行验证才能进行后续操作 解决验证码的方法如下 1 开发做个万能验证码 推荐 2 测试环境关闭验证码功能
  • Easy Code插件使用(附Spring Data JPA生成模板)

    文章目录 一 概述 二 安装 1 安装插件 2 连接数据库 三 生成代码 四 配置EasyCode 五 Spring Data JPA模板 1 controller类 2 service接口 3 serviceImpl实现类 4 dao接口
  • Python之体育竞技分析

    来源 Python语言程序设计 嵩天 一 问题描述 需求 高手过招 胜负只在毫厘 如何科学地分析体育竞技比赛 输入 球员的水平 输出 预测比赛成绩 二 具体分析 三 代码实现 from random import random 生成随机数