avatar
v*a
1
1. 12 coins. One of them is heavier or lighter than the rest.
Identify this coin in three weighings.
2. 3 persons, how can they know the average salary of the three persons
but without knowing other persons' salary. [bloomberg]
avatar
t*j
2
1. 老题目
2. 让每个人随机写一个数,传给下一个人。下一个人把自己薪水和这个数字相加传给
下一个人,下一个人把这数字减去自己写的数字然后报出来。三个数字除以三就是三人
平均薪水。

【在 v******a 的大作中提到】
: 1. 12 coins. One of them is heavier or lighter than the rest.
: Identify this coin in three weighings.
: 2. 3 persons, how can they know the average salary of the three persons
: but without knowing other persons' salary. [bloomberg]

avatar
n*h
3
第一题怎么解?有link否?
avatar
r*s
4
参考8个球, 2次称出

【在 n******h 的大作中提到】
: 第一题怎么解?有link否?
avatar
n*h
5
8球2次是因为知道特殊球是重还是轻吧?这题12球,没说特殊球是重还是轻,所以我实
在做不出来啊……
avatar
n*h
6
这题还真是巧了,我觉得最少只能4次。求达人出解老题。
avatar
c*t
7
3次可以比较出的
我记得5年前高中的时候,每次吃饭时都想,想了足足两个星期终于想出来了
关键是 3堆×4 要比两次,第二次很麻烦的,具体你琢磨琢磨吧,每次想都很费脑的,当
然有草稿纸要好很多
avatar
t*j
8
我小BSO一下,我lg第一次听说这道题是大一,室友说的,他坐在床上花10分钟想出来
的。他告诉过我几回答案,我都记不住。

【在 c*******t 的大作中提到】
: 3次可以比较出的
: 我记得5年前高中的时候,每次吃饭时都想,想了足足两个星期终于想出来了
: 关键是 3堆×4 要比两次,第二次很麻烦的,具体你琢磨琢磨吧,每次想都很费脑的,当
: 然有草稿纸要好很多

avatar
c*i
9
这种题最简单的解法就是逆推。反正最后一步你肯定是要确定特殊硬币在某三个硬币之
间(这样才能一次找出),然后前两步自然就是找出这三个硬币。12个硬币组合方式也
就那么多,自然就会分成四拨,每拨三个。随便两拨称,一样就取其中任意一拨与剩下
任意一拨称。不一样也照做。这样两次就把那特殊硬币所在的拨找出来了,同时也知道
了是轻是重。

【在 n******h 的大作中提到】
: 8球2次是因为知道特殊球是重还是轻吧?这题12球,没说特殊球是重还是轻,所以我实
: 在做不出来啊……

avatar
c*i
10
稍微再详细点
四拨三个随便拿两拨称,不一样就说明特殊硬币不在剩下的两拨里面。在剩下两拨里面
随便拿一拨(肯定不含特殊硬币)跟最开始选择的两拨里重的那拨称(轻的同理)。如
果不一样,说明特殊硬币重了,且在最开始两拨里重的那拨里面。然后一次称重就可找
出。如果一样,就说明特殊硬币轻了,且在最开始两拨里轻的那拨里面。同样一次称重
可找出。
如果第一次称重重量一样,说明特殊硬币在剩余两拨里面,同理可得
avatar
t*j
11
对头~~~~~这下记住了!

【在 c*****i 的大作中提到】
: 稍微再详细点
: 四拨三个随便拿两拨称,不一样就说明特殊硬币不在剩下的两拨里面。在剩下两拨里面
: 随便拿一拨(肯定不含特殊硬币)跟最开始选择的两拨里重的那拨称(轻的同理)。如
: 果不一样,说明特殊硬币重了,且在最开始两拨里重的那拨里面。然后一次称重就可找
: 出。如果一样,就说明特殊硬币轻了,且在最开始两拨里轻的那拨里面。同样一次称重
: 可找出。
: 如果第一次称重重量一样,说明特殊硬币在剩余两拨里面,同理可得

avatar
c*t
12
楼上错误,不带这么简单的
ps:吃饭的时候很难集中精神,不吃饭的时候没时间。。。

~~~~~~~~~~~~~~~~~~~
错在这里

【在 c*****i 的大作中提到】
: 稍微再详细点
: 四拨三个随便拿两拨称,不一样就说明特殊硬币不在剩下的两拨里面。在剩下两拨里面
: 随便拿一拨(肯定不含特殊硬币)跟最开始选择的两拨里重的那拨称(轻的同理)。如
: 果不一样,说明特殊硬币重了,且在最开始两拨里重的那拨里面。然后一次称重就可找
: 出。如果一样,就说明特殊硬币轻了,且在最开始两拨里轻的那拨里面。同样一次称重
: 可找出。
: 如果第一次称重重量一样,说明特殊硬币在剩余两拨里面,同理可得

avatar
t*j
13
点解?我没看出毛病。

【在 c*******t 的大作中提到】
: 楼上错误,不带这么简单的
: ps:吃饭的时候很难集中精神,不吃饭的时候没时间。。。
:
: ~~~~~~~~~~~~~~~~~~~
: 错在这里

avatar
c*t
14
~~~~~~~~~~~~~~~~~~~
这里后还需要称3次
第一次必须只能分3堆.我还记得当时在3堆和4堆徘徊了很久
avatar
p*7
15
我记得好像13个硬币也可以用3次测出来的

A>

【在 t*****j 的大作中提到】
: 点解?我没看出毛病。
avatar
t*j
16
那是知道轻重吧?

【在 p********7 的大作中提到】
: 我记得好像13个硬币也可以用3次测出来的
:
: A>

avatar
c*t
17
刚才做饭想出来了
前面说错了
第二次不是4个和4个比,而是3个和3个比: 重重轻:重轻标
avatar
t*j
18
bingo!

【在 c*******t 的大作中提到】
: 刚才做饭想出来了
: 前面说错了
: 第二次不是4个和4个比,而是3个和3个比: 重重轻:重轻标

avatar
b*n
19
再说详细点吧,如果第一次称重两边一样,然后怎样?

【在 c*****i 的大作中提到】
: 稍微再详细点
: 四拨三个随便拿两拨称,不一样就说明特殊硬币不在剩下的两拨里面。在剩下两拨里面
: 随便拿一拨(肯定不含特殊硬币)跟最开始选择的两拨里重的那拨称(轻的同理)。如
: 果不一样,说明特殊硬币重了,且在最开始两拨里重的那拨里面。然后一次称重就可找
: 出。如果一样,就说明特殊硬币轻了,且在最开始两拨里轻的那拨里面。同样一次称重
: 可找出。
: 如果第一次称重重量一样,说明特殊硬币在剩余两拨里面,同理可得

avatar
b*n
20
这个应该是正确答案

【在 p********7 的大作中提到】
: 我记得好像13个硬币也可以用3次测出来的
:
: A>

avatar
t*j
21
你这不才12个球么?不是说13个的吗?

【在 p********7 的大作中提到】
: 我记得好像13个硬币也可以用3次测出来的
:
: A>

avatar
p*7
22
所以我才删除了。
不过13个球有解法的。
A1 A2 A3 A4
B1 B2 B3 B4
C1 C2 C3 C4 C5
情况1.如果A组重量等于B
那么比较
C1 C2 C3 A1 A2 A3
如果C1 C2 C3重,那么肯定就是C1-C3 overweight,C1-C3互相比较就出答案
如果C1 轻,同理
情况2.如果A组和B组重量不同 H表示重的 L表示轻的
H1 H2 H3 H4
L1 L2 L3 L4
比较H1 H2 L1 和 H3 H4 C2
如相同那么表示L2-L4有一个是轻了,互相比较就出结果
如果不同,如果是H1 H2 L1重了,那么肯定是H1 H2有一个overweight,再比较一次出结果
如果是H1 H2 L1轻了,那么可能是L1轻了,或者H1 H2重了,比较H1 H2也出结果

【在 t*****j 的大作中提到】
: 你这不才12个球么?不是说13个的吗?
avatar
t*1
23
mark

【在 v******a 的大作中提到】
: 1. 12 coins. One of them is heavier or lighter than the rest.
: Identify this coin in three weighings.
: 2. 3 persons, how can they know the average salary of the three persons
: but without knowing other persons' salary. [bloomberg]

avatar
i*e
24
3 3 6
注意取/放球来对比
avatar
i*e
25
3 3 6
注意取/放球来对比
avatar
h*3
26

如果第一次和第2次称,重量都一样的话,就不知道那个特殊的硬币是重还是轻了。
那样的话,3次就称不出来了吧。

【在 c*****i 的大作中提到】
: 稍微再详细点
: 四拨三个随便拿两拨称,不一样就说明特殊硬币不在剩下的两拨里面。在剩下两拨里面
: 随便拿一拨(肯定不含特殊硬币)跟最开始选择的两拨里重的那拨称(轻的同理)。如
: 果不一样,说明特殊硬币重了,且在最开始两拨里重的那拨里面。然后一次称重就可找
: 出。如果一样,就说明特殊硬币轻了,且在最开始两拨里轻的那拨里面。同样一次称重
: 可找出。
: 如果第一次称重重量一样,说明特殊硬币在剩余两拨里面,同理可得

avatar
g*s
27
【 原文由 grass 所发表 】
这是我当时的一份作业题报告.写的有些乱,不过,应该可以看明白的,我想。
试题一:
有12个球,其中有一个坏球,但不知道是轻是重。试用天平称三次,找出坏球,并说出它
是轻是重。
试题二:
称n次,最多可以在多少个球中找出坏球来。(坏球只有一个)
对于天平问题,我们通常都可以把它和3相联系,这是因为对于每一次称物,都可以分
为三堆,天平上两堆,再加上未放上去的一堆;这样无论天平是否平衡,我们都可以得
到一些信息,并且信息不浪费。具体先看试题一的解答:
12个球,分别编号1,2,……,11,12。
1、 1,2,3,4 对 5,6,7,8 (一)
< 转6 ; > 转10 (类似 2、 9,10 对 11,1 (二)
< 转 5 ; > 转 4 ; = 转3
3、 1 对 12 (三)
< 坏球为12 ,重;> 坏球为12 , 轻 ;不可能=。
转999;
4、 9 对 10 (三)
< 坏球为9 , 轻;> 坏球为10 , 轻 ;= 坏球为11 重。
转999;
5、 9 对 10 (三)
< 坏球为10 , 重;> 坏球为9 , 重 ;= 坏球为 11 轻;
转999;
6、 1 , 2 , 5 对 3,4,6 (二)
< 转9 ;> 转 8 ;= 转 7
7、 1 对 7 (三)
< 坏球为7 , 重 ;< 坏球为8 , 重 ;= 不可能
8、 3 对 4 (三)
< 坏球为 3 ,轻 ;< 坏球为 4 , 重 ;= 坏球 5 ,重
9、 1 对 2 (三)
< 坏球为 1 ,轻 ;< 坏球为 2 , 重 ;= 坏球 6 ,重
10、 类似于6—9
999、 结束。
通过对第一题的思索解答,我们可以发现一些规律:对于称n次,若我们能把称n-1次的
问题解决,n次就可以用递推来求出球的个数。(对于我们要解决的这个问题,用f(n)表
示。)
但是,也不是单纯简单的递推。因为我们在称第一次的时候,得到了一些信息,这些信
息可以给我们后面的称球带来帮助。
我们来分析第一次称的三堆球:
(一)若不平衡,我们得到的信息是:
1. 坏球在天边上的两堆里;
2. 有一堆的球重,一堆轻。
大家往往会忽视第二条信息,实际上这条信息是非常重要的。若我们知道一些球的轻重
关系,我们可以用比不知道这个关系称的次数更少就得出结论。如:若告诉你坏球轻,
那么27个球只要三次就够了。
所以我们要研究一下,若我们知道一些球的轻重关系,n次最多可以称出多少个球。我们
用函数h(n)表示。
(二)若平衡,则得到的信息是:
1. 坏球在剩下的一堆中;
2. 有若干个好球可以给我们利用。
第二条信息又是大家容易忽视的。就如12个球,称第一次若平衡,我们就可以用天平上
的球作为标准球。有标准球,两次可以称称出4个球(见第一试题解答部分的2—5);若
没有的话,就只能称出3个球。
所以我们还要研究一下,若我们有一个标准球,n次最多可以称出多少个球。我们用函数
g(n)表示。
定义一:若一个球,若知道它不可能偏重(或知道不可能偏轻),则我们称此球为半确
定重球(或半确定轻球);半确定重球和半确定轻球统称为半确定球。
第一题中,通过第一次称重后,若不平衡,则1,2,3,4,5,6,7,8号球都成为半确定球,
若1,2,3,4〈5,6,7,8,则1,2,3,4为半确定轻球,5,6,7,8为半确定重球。
定义二:若一个球,若知道它是好球,则我们称此球为确定好球;若知道是坏球,确定
坏球。确定好球和确定好球统称为确定球。
第一题中,通过第一次称重后,若平衡,则1,2,3,4,5,6,7,8号球都成为确定球好球。
定义三:若一个球,既不是确定球,也不是半确定球若,则我们称此球为不确定球。
第一题中,通过第一次称重后,则9,10,11,12号球都成为不确定球。
一次未称之前,所有球都是不确定球。
引理一、对于放上过天平的球,都是半确定球或是确定球
这是个显然成立的命题。
定义四:若所有球都是半确定球,那么n次可称出的球的最大个数我们用 h(n)表示。
引理二:h(n)=3^n。
证明:
用归纳法来证:
⑴对于n=1,先证3个球是可称的,再证4个是不可称的。
① 3个球可称,
若全为半确定重球,任意挑两个,若不平衡,重的就是坏重球;否则,剩下的那个就是
坏重球;
全为半确定轻球同理;
若两个半确定重球,一个半确定轻球,则称两个两半确定重球,若不平衡,重的就是确
定重球;否则,剩下的那个就是确定轻球;
若一个半确定重球,两个半确定轻球同理。
所以,3个求可称。
②四个球不可称
若是4个球,天平称一次,只能提供三条信息,由抽屉原理,必然有两个球的信息是相同
的。故一次无法保证能判断出来。
故,n=1是h(n)=3^n是成立的。
⑵设n = k时命题成立,对于n=k+1
①先证t=3^(k+1)个球是可判断的:
设t中有a个半确定重球,b个半确定轻球,t =a + b ;
由对称性,不妨设a>b (a + b是奇数,所以不可能相等)
按如下方法分为三堆:
若a>=2*(3^k),则天平两边各放3^k个半确定重球。若不平衡,坏球在重的那堆中;平衡
的话,坏球在剩下的那堆中。这时剩3^k个球,k次可判断出来,共k+1次,成立。
若a<2*(3^k), 则天平两边各放[a/2]个半确定重球,3^k-[a/2]个半确定轻球。若不平衡
,坏球在重的那堆中的半确定重球或轻的那堆半确定轻球中;平衡的话,坏球在剩下的
那堆中。这时剩3^k个球,k次可判断出来,共k+1次,成立。
a < b 同理可证。
所以3^(k+1)个球是可判断的。
②若3^(k+1)+1个球,称一次,只能提供三条信息,由抽屉原理,必然有3^k+1个球的信
息是相同的,这3^k+1个球无法用k次称出。故k+1次无法保证能判断出来。
故,n=k+1也成立。
由归纳法,h(n)=3^n对一切自然数都成立。
再回到原题,来求f(n).
对于第一次处理后,若不平衡,天平两边的球都将成为半确定球。设两边球个数各为a个
,另外一堆个数为b个。易知,a与b相互独立。为使得f(n)=2a+b最大,即要分别求出a
, b的最大值。
由引理二,这2a个半确定球要在n-1次判断出,当且仅当
2a <= h (n-1)=3^(n-1).
但等号无法取到,因为3^(n-1)为奇数,所以2a<=3(n-1)-1,
max(a)=(3^(n-1)-1)/2
f(n)=(3^(n-1)-1)+max(b)
定义四、给一个确定好球,n次能称的最多非确定球的个数用g(n)表示。
引理三:g(n)=f(n)+1
若有任意确定好球的话,g(n)比f(n)可提高效率的地方就在于第一次称的时候可以两边
放的非确定球的个数不一样多。一边放c个不确定球,一边放a个不确定球和c-a个确定好
球,剩下一堆为b个。平衡的话,b个球的处理同f(n),所以此时的max(b)显然等于f(n)的
max(b)。若不平衡的话,就有a + c个不确定球。
a + c <= 3 ^ ( n – 1 ) (等号可取)
令c=a+1=(3^(n-1)+1)/2,则此时只需要一个确定好球,
g(n)=max(a + c)+max(b)=3^(n-1)+max(b)=f(n)+1 #
再来研究max(b).若不平衡,则b个球全为确定好球,否则,全为非确定球。但天平上的球
全为确定好球。这时的b就恰好同我们刚刚讨论的g(n). 即有max(b)=g(n-1)=f(n-1)+1.
故有f(n)=3^(n-1)-1+f(n-1)+1 =f(n-1)+3^(n-1)
这是一个递推公式。
我们又易知,f(2)=3 ,所以易解得
f (n)=(3^n-3) / 2
故,称n次,最多可以在(3^n-3) / 2个球中找出坏球来。(坏球只有一个)
当n=3时,即第一题,f(3)=12. 3次能称得的最大数目将是12个。
avatar
g*s
28
才发现我这解法还被baidu文库收录了。看里面的变形三
http://wenku.baidu.com/view/30115a35eefdc8d376ee3231.html

出它

【在 g***s 的大作中提到】
: 【 原文由 grass 所发表 】
: 这是我当时的一份作业题报告.写的有些乱,不过,应该可以看明白的,我想。
: 试题一:
: 有12个球,其中有一个坏球,但不知道是轻是重。试用天平称三次,找出坏球,并说出它
: 是轻是重。
: 试题二:
: 称n次,最多可以在多少个球中找出坏球来。(坏球只有一个)
: 对于天平问题,我们通常都可以把它和3相联系,这是因为对于每一次称物,都可以分
: 为三堆,天平上两堆,再加上未放上去的一堆;这样无论天平是否平衡,我们都可以得
: 到一些信息,并且信息不浪费。具体先看试题一的解答:

avatar
d*y
30
2题解法挺巧妙啊

【在 t*****j 的大作中提到】
: 1. 老题目
: 2. 让每个人随机写一个数,传给下一个人。下一个人把自己薪水和这个数字相加传给
: 下一个人,下一个人把这数字减去自己写的数字然后报出来。三个数字除以三就是三人
: 平均薪水。

avatar
s*b
31
赞详尽。从直观角度解释,其实不用归纳法。关键就是每次称都有三种结果:左边重,
右边重,两边一样重。那理论上N次操作后可以用3^N种状态。那么12个球也就需要3次
就够了。而每次操作的关键就是让三种结果的概率尽可能相等。这个的道理在Mackay的
书Information Theory, Inference, and Learning Algorithms里有精彩解释:http://www.cs.toronto.edu/~mackay/itprnn/book.pdf (见第四章)

【在 g***s 的大作中提到】
: 才发现我这解法还被baidu文库收录了。看里面的变形三
: http://wenku.baidu.com/view/30115a35eefdc8d376ee3231.html
:
: 出它

avatar
n*p
33
mark~~~~~~~~~~~~~~~
avatar
g*i
34
受打击了
avatar
l*e
35
3个数字报出来之后,是可以推出每个人的工资的。
例如A给B一个随机数,B将自己的工资加上去给C,B肯定知道这个和,所以C报出来B就
可以推断出C的随机数;同时B又知道A的随机数。
其实,A给出一个随机数,然后加上工资给B,B加上工资给C,C加上工资再给A,然后由
A减去随机数,计算出平均值就可以了。

【在 t*****j 的大作中提到】
: 1. 老题目
: 2. 让每个人随机写一个数,传给下一个人。下一个人把自己薪水和这个数字相加传给
: 下一个人,下一个人把这数字减去自己写的数字然后报出来。三个数字除以三就是三人
: 平均薪水。

avatar
A*M
36
第一道题不难, 举举例子就出来了, 难的是推广到N。 国内某本算法复杂度的教科书
上有详解
avatar
l*y
37
1、 1,2,3,4 对 5,6,7,8 (一)
假设为 = , 转2 ;
2、 9,10 对 11,1 (二)
假设为 5、 9 对 10 (三)
< 坏球为10 , 重;> 坏球为9 , 重 ;= 坏球为 11 轻;
好像三个结论都是错的,推理如下:
1.说明1~8是正常的球
2,说明要么(1)9或10有一个球轻了,要么(2)11重了。
5, 若为9 < 10,则根据2, 9轻了; 若 9 > 10, 则10轻了;若 9 = 10, 则11重了。
把2的改为> 转 5 ; < 转 4 前面这几步就正确了
后面7,8,9的错误更明显。拜托发之前先自己检查一下。

出它

【在 g***s 的大作中提到】
: 才发现我这解法还被baidu文库收录了。看里面的变形三
: http://wenku.baidu.com/view/30115a35eefdc8d376ee3231.html
:
: 出它

avatar
o*y
38
赞,大家都这么详细的解说
先收藏着
avatar
D*3
39
1.
记得3堆,每堆4个才是正确答案,
第二步是关键,要第一堆提三个出来交换一下
avatar
g*s
40
没必要拜托吧。几个typo在里面而已,基本思路出来了应该都能看懂的。

【在 l******y 的大作中提到】
: 1、 1,2,3,4 对 5,6,7,8 (一)
: 假设为 = , 转2 ;
: 2、 9,10 对 11,1 (二)
: 假设为 : 5、 9 对 10 (三)
: < 坏球为10 , 重;> 坏球为9 , 重 ;= 坏球为 11 轻;
: 好像三个结论都是错的,推理如下:
: 1.说明1~8是正常的球
: 2,说明要么(1)9或10有一个球轻了,要么(2)11重了。
: 5, 若为9 < 10,则根据2, 9轻了; 若 9 > 10, 则10轻了;若 9 = 10, 则11重了。

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。