使用天平3次,從12個乒乓球找惟一1個輕重未知的廢品

     前些天在知乎看到一個問如何鑑定程序員水平的問題,其中一個答主建議用智力題考驗程序員解決問題的能力(咱們在此不討論答主的觀點),而後就留了這麼一個問題供你們思考。當時思考了一陣,沒頭緒(我真不是答主認爲的優秀程序員╯□╰)就此放下了。剛好今天在看《控制論與科學方法論》這本書時,看到這本書對此題目的解答,但文中只給了第一步的推導,而後就同理了……而後我就糾結了N久,才把這個同理給想明白。下面把書中的解法和本身想明白的分享給你們。程序員

     書中是使用控制能力來分析的(控制能力 = 原可能性空間大小 / 施加控制後可能性空間大小)。每一個球均可能是廢品中或輕或重兩種狀態,所以總的可能性空間大小是12×2=24個狀態。目標是惟一的一個狀態,所以要求控制能力爲24/1=24。天平每次稱量可肯定左邊重,右邊重,兩邊同重3個狀態中的一個,可能性空間縮小爲原來1/3,所以天平控制能力爲3,3次稱量,總控制能力爲3×3×3=27 > 24。因此此問題有解。程序

設第一次稱x個球,留y個球。若天平平衡,則廢品在y個球中,則有方法

2y/9 ≤1   (1)分享

若是天平不平衡,則廢品在x個球中。已知x/2個不會是輕的,x/2個不會是重的,全部的可能性空間爲x,則有:截圖

x/9≤1   (2)思考

x+y=12   (3)知乎

由此解的x=8,y=4。書中說用一樣的方法就能夠得到第二次第三次的具體解法了。這個「一樣的方法」讓我好生糾結,由於第二次狀況更復雜了,具體該怎麼求解呢?

      第一次稱量兩邊平衡的狀況很好想通,咱們來考慮兩邊不平衡的狀況。天平上比較輕的那一側咱們記爲a,另外一側記爲b。如今能夠假設從a中拿a­­1個放入天平左邊,a­­2個放入天平右邊,留下a3個;從b中拿b­­1個放入天平左邊,b2個放入天平右邊,留下b3個。則有:

a1+a2+a3=4   (4)

b1+b2+b3=4   (5)

a1+b1=a2+b2   (6)

若天平平衡,則有:

(a3+b3)/3≤1   (7)

若天平不平衡且左邊輕,則那a1和b1個球不多是重的,又在第一步的稱量中可知那b1個球不多是輕的,因此能夠斷定那b1個球是正常的;並且a2和b2個球不多是輕的,又在第一步的稱量中可知那a2個球不多是重的,因此能夠斷定那a2個球是正常的。此時剩下a1和b2個球待定。所以有:

(a1+b2)/3≤1   (8)

若天平不平衡且左邊重,則同理有:

(a2+b1)/3≤1   (9)

根據(4)-(9)能夠求得兩組解a1=a2=1,a3=2;b1=b2=2,a3=1;與a1=a2=2,a3=1;b1=b2=1,a3=2。

      第三步就能夠按一樣的方法推得了。

      控制能力解決問題的視角真獨特,自嘆仍是讀書少啊。

注:本文中給出的解後來發現並不全面,只是多個解中的一個。請參考評論18樓與21樓書中解答截圖。

相關文章
相關標籤/搜索