tlwhhy
\'\'\'
1.自顶向下:不断细化分解问题的方法
2.自底向上:不断组合基础方法形成系统

计算思维:抽象 自动化

计算生态:以开源项目为组织形式,充分利用“共识原则”和“社会利他”组织人员,在竞争发展、
         相互依存和迅速更迭中完成信息技术的更新换代,形成了技术的自我演化路径。

Python计算生态:>15万个第三方库
https://pypi.org/:      输入功能英文--->获取库--->查看方法并应用




\'\'\'
#-------------------------------------------------------------------------------------------------------------
#自顶向下实例:
from random import random

def printIntro():#初始化提示输入
    print(\'该程序模拟某两个竞技选手A和B之间的比赛\')
    print(\'请输入两选手的能力值(0-1之间的小数表示)以及竞技场次数\')

def getIputs():#获取选手输入
    a,b,n=list(map(eval,input().split(\' \')))
    return a,b,n

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 gameOver(a,b):#单场比赛结束标志
    return a==15 or b==15

def simOneGame(probA,probB):#模拟一场比赛
    scoreA,scoreB=0,0
    serving=\'A\'
    while not gameOver(scoreA,scoreB):
        if serving==\'A\':
            if random()<probA:
                scoreA+=1
            else:
                serving=\'B\'
        else:
            if random()<probB:
                scoreB+=1
            else:
                serving=\'A\'
    return scoreA,scoreB

def simuNGames(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
def main():#顶端函数
    printIntro()
    probA,probB,n=getIputs()
    winsA,winsB=simuNGames(n,probA,probB)
    printSummary(winsA,winsB)
main()

 

分类:

技术点:

相关文章:

  • 2021-03-31
  • 2022-01-16
  • 2021-12-07
  • 2021-04-11
  • 2022-12-23
  • 2021-12-17
  • 2022-12-23
  • 2021-06-02
猜你喜欢
  • 2021-12-02
  • 2021-11-17
  • 2021-07-08
  • 2021-10-30
  • 2021-07-17
  • 2022-01-06
  • 2022-01-24
相关资源
相似解决方案