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

新人,求大神帮助:用python写两个程序1,有30枚硬币,其中一枚是假币,假币较轻,现有一个天平,如何用最快的方法找到这枚假币?2,有32支队伍要进行比赛,有两个场地可... 新人,求大神帮助:用python 写两个程序 1,有30枚硬币,其中一枚是假币,假币较轻,现有一个天平,如何用最快的方法找到这枚假币? 2,有32支队伍要进行比赛,有两个场地可以用(一天可以进行两场比赛),要求32支队伍相互之间都有比赛,且每支队伍不会连续比赛(第一天有比赛,第二天不会再次比赛),请编写一个赛程表。 这两个问题如何用python 编写!谢谢! 展开
 我来答
chenchiheng123
2014-04-20 · TA获得超过396个赞
知道小有建树答主
回答量:131
采纳率:100%
帮助的人:146万
展开全部
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)
追问
谢谢
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式