新人,求大神帮助:用python 写两个程序 1,有30枚硬币,其中一枚是假币,假币较轻,现有一

新人,求大神帮助:用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)

追问

谢谢

温馨提示:答案为网友推荐,仅供参考
相似回答