|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 冬雪雪冬 于 2016-2-19 08:09 编辑
记得有个小游戏,称量乒乓球。有多个乒乓球,除了一个球更重外,其他球重量一样,怎样用天平最少的称量次数找出重球。
这次要求主要功能编写成一个函数,问题的关键是怎样分球去称量。为了让大家春节快快乐乐,这次出题比较简单,只要答对都给予加分奖励。
考虑到大家春节期间事情比较多,结束时间定在 2016-2-17 23:59
具体要求如下:
- def find(num1, num2, output = False):
- #将主要功能封装成一个函数。
- #其中num1为总的乒乓球数,num2为重球在第几个。
- #output为True时输出称量过程,为False时不显示过程。
- #过程示例如下:
-
- #以27个乒乓球,重球在第25个为例。
- #1次称量1-9球和10-18球,重量相同。
- #2次称量19-21和22-24求,重量相同。
- #3次称量25球和26球,25球重,重球为25球。
- #共计称量3次。
- ....
- ....
- return times#返回称量次数。
- n = random.randint(1, 100)#重球在1~100之间
- find(100, n, output = True)#调用find函数一次显示称量过程
- #计时开始
- for i in range(100000):#做100000次测试
- n = random.randint(1, 100)
- times = find(100, n)#调用find函数不显示称量过程
- #计数结束
- #输出平均几次称出重球
- #输出用时
复制代码 有鱼油问:题目还有点不理解,是知道重球的位置去找出最少次数,还是不知道重球的位置要确定它在哪?解释一下:重球的位置是随机的,需要用最少的称量次数找出来。以3个球为例,将1、2球放在天平的左右两个盘中,如果左重,则重球是1号球,如果右重,则重球是2号球,如果一样重,则重球是3号球。
|
评分
-
查看全部评分
|