Python乒乓球比赛顺序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python乒乓球比赛顺序相关的知识,希望对你有一定的参考价值。
下面是具体的代码和问题,对我这种小白感觉好难,想请大神帮忙分析下逻辑,看到好多这个题,但都是直接的代码,好蒙,求帮忙讲解一下,感谢~~
简述:已知有两支乒乓球队要进行比赛,每队各出三人;
甲队为a,b,c三人,乙队为x,y,z三人;
已抽签决定比赛名单。
问题:有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。
for i in range(ord('x'),ord('z') + 1):
for j in range(ord('x'),ord('z') + 1):
if i != j:
for k in range(ord('x'),ord('z') + 1):
if (i != k) and (j != k):
if (i != ord('x')) and (k != ord('x')) and (k != ord('z')):
print 'order is a -- %s\t b -- %s\tc--%s' % (chr(i),chr(j),chr(k))
#!/usr/bin/python
# -*- coding: UTF-8 -*-
for i in range(ord('x'),ord('z') + 1):
for j in range(ord('x'),ord('z') + 1):
if i != j:
for k in range(ord('x'),ord('z') + 1):
if (i != k) and (j != k):
if (i != ord('x')) and (k != ord('x')) and (k != ord('z')):
print 'order is a -- %s\t b -- %s\tc--%s' % (chr(i),chr(j),chr(k))本回答被提问者和网友采纳
乒乓球比赛规则模拟体育分析
from random import random def printIntro(): #打印程序介绍信息 print("12号朱益民进行比赛分析结果:") print("这个程序模拟两个队伍A和B的某种竞技比赛") print("程序运行需要队伍A和队伍B的能力值(以0到1之间的小数表示)") def getInputs(): #获得程序运行参数 a = eval(input("请输入队伍A的能力值(0-1): ")) b = eval(input("请输入队伍B的能力值(0-1): ")) n = eval(input("模拟比赛的场次: ")) return a, b, n def simNGames(n, probA, probB): # 进行N场比赛 winsA, winsB = 0, 0 for i in range(n): for j in range(5): #进行5局3胜的比赛 scoreA, scoreB = simOneGame(probA, probB) if scoreA > scoreB: winsA += 1 else: winsB += 1 return winsA, winsB def gameOver(a,b): #正常比赛结束 return a==11 or b==11 def gameOver2(a,b): #进行抢12比赛结束 return a==12 or b==12 def simOneGame(probA, probB): #进行一场比赛 scoreA, scoreB = 0, 0 #初始化AB的得分 serving = "A" while not gameOver(scoreA, scoreB): #用while循环来执行比赛 if scoreA==10 and scoreB==10: return(simtwoGame2(probA,probB)) if serving == "A": if random() < probA: ##用随机数生成胜负 scoreA += 1 else: serving="B" else: if random() < probB: scoreB += 1 else: serving="A" return scoreA, scoreB def simtwoGame2(probA,probB): scoreA,scoreB=10,10 serving = "A" #假如先让队伍A发球 while not gameOver2(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 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()
以上是关于Python乒乓球比赛顺序的主要内容,如果未能解决你的问题,请参考以下文章