新人,求大神帮助:用python 写两个程序 1,有30枚硬币,其中一枚是假币,假币较轻,现有一
新人,求大神帮助:用python写两个程序1,有30枚硬币,其中一枚是假币,假币较轻,现有一个天平,如何用最快的方法找到这枚假币?2,有32支队伍要进行比赛,有两个场地可...
新人,求大神帮助:用python 写两个程序 1,有30枚硬币,其中一枚是假币,假币较轻,现有一个天平,如何用最快的方法找到这枚假币? 2,有32支队伍要进行比赛,有两个场地可以用(一天可以进行两场比赛),要求32支队伍相互之间都有比赛,且每支队伍不会连续比赛(第一天有比赛,第二天不会再次比赛),请编写一个赛程表。 这两个问题如何用python 编写!谢谢!
展开
展开全部
NO.1
#encoding: UTF-8
'''
只想到用二分法查找
'''
import random
def FindMoney(aList):
if len(aList) == 2:
if aList[0] > aList[1]:
print aList[1]
else:
print aList[0]
else:
if sum(aList[len(aList)/2:]) > sum(aList[:len(aList)/2]):
FindMoney(aList[:len(aList)/2])
else:
FindMoney(aList[len(aList)/2:])
a = [1] *29 + [0]
a.sort(lambda a,b: random.randint(-1, 1)) #乱序
print a
FindMoney(a)
NO.2,详细解释请参照 http://blog.csdn.net/handsomekang/article/details/10089221
#encoding: UTF-8
from collections import deque
import random
def Matchschedule(team):
c = team[1:]
c = deque(c)
for i in range(len(team) - 1):
c.appendleft(team[0])
for j in range(len(team)/2):
print c[j], "<----->", c[-1-j]
c.popleft()
c.append(c.popleft())
if __name__ == "__main__":
a = [i for i in range(1,33)]
Matchschedule(a)
追问
谢谢
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询