Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4565840
  • 博文数量: 1214
  • 博客积分: 13195
  • 博客等级: 上将
  • 技术积分: 9105
  • 用 户 组: 普通用户
  • 注册时间: 2007-01-19 14:41
个人简介

C++,python,热爱算法和机器学习

文章分类

全部博文(1214)

文章存档

2021年(13)

2020年(49)

2019年(14)

2018年(27)

2017年(69)

2016年(100)

2015年(106)

2014年(240)

2013年(5)

2012年(193)

2011年(155)

2010年(93)

2009年(62)

2008年(51)

2007年(37)

分类:

2011-02-05 22:51:30

我的解法:(未达到要求)
1. 将12个小球分4组,每组3个。
2. 通过称量其中的两组,就知道重量异常小球在称量的两组,还是未称量的两组。
3. 有重量异常的小球的AB两组和3个正常小球的C组,这三组再通过一次称重找出重量异常小球所在的那一组,且知道小球是重还是轻。
4. 知道存在异常的小球组,且知道小球是重了还是轻了,这样情况下称量其中的2个,即可得知异常小球的所在。


第2,3步分解:
  第2步得到不平衡的两组(左边重,或左边轻),换下右边,换上一组平衡的。
    仍然平衡,之前左边重说明小球轻,之前左边轻说明小球重,小球在换下的右边里
    左边重,说明小球重且在左边
    左边轻,说明小球轻且在左边

  第2步得到平衡的两组,换下一组平衡的,换上一组未称量的。
    如果得到不平衡,得出新换上的这一组里面有重的或者轻的小球
    如果平衡,得知小球在最后一组里面。最后一组拿两个称,如果平衡,得知最后一个小球异常,但不知道轻重;如果不平衡则需要称第4次。

---------------------------------------------------------------------------------------------
正解:
1. 将球分为3组,每组4个,任取两组称一次。
2. 若两边等重,则异常球在其余一组中,通过3个正常球和其余一组中3个称重,很容易就能找出异常球。
3. 若两组不等重,假设A组重,B组轻。从A组取两个、B组取一个为甲组;取A组一个、B组1个,正常球一个为乙组,进行称重。
  a) 若两者相等,则异常球没有进入甲乙两组中,可能是A组剩余那个超重或是B组剩余的两个轻,将B组剩余的两个称重,若等重则A组剩余那个重,否则两个中较轻的轻。
  b) 若甲组重,则甲组中的两个原A组的重或是乙组中原B组的轻,将A组那两个称重,若等重则乙组中原B组的球轻,否则A组中较重的重。
  c) 若甲组轻,则甲组中原B组的轻或是乙组中原A组的重,任取一个与正常球对比即可找出异常球。

阅读(2326) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~