12球稱重問題, 演算法及其他

2021-06-09 06:34:20 字數 3336 閱讀 9455

數學分析:

**實現: 

第一:有12個外觀完全一樣的球;

第二:11個是好球,重量相同;

第三:有乙個球是「壞球」,重量與其他11個球異常,但不知偏輕偏重!

第四:有一架天平,無砝碼;

問:怎樣用該天平稱量3次,找出重量異常的球!

先論證可行性:

再來看看牛人的解答吧,從另乙個角度看東東,特別牛!!!

從資訊理論來看,12個球乙個重量異常,出現概率1/12;該球質量可能輕也可能重,那麼出現概率為1/2。

那麼要得到結果所需資訊量為log2+log12。

稱一次可能有輕、重、相等三種結果,資訊量為log3。log24/log3<3,三次應該能稱出來。

資訊理論運用到這種地步,實在是精闢啊。

最後,說一下如何稱13個球吧。不過,只能找出來,不能保證知道壞球是輕是重。

還是分三組,a、b、c,c組5個球(c1,c2,c3,c4,c5)

第一次,還是稱量 a :::: b;如果不相等,嘿嘿,和稱12個球完全一樣了!

如果 a == b,都是好球,c中有「壞球」;

很簡單,

第二次,(a1,a2,a3)::::(c1,c2,c3)稱量;

如果,==,(c4,c5)有「壞球」,隨便哪乙個與a1稱即可;

如果,>,(c1,c2,c3)中有「壞球」,且壞球輕,再c1和c2稱,即可;

如果,<,(c1,c2,c3)中有「壞球」,且壞球重,再c1和c2稱,即可;

最後,對資訊理論的一點兒補充,權當給各位參考:

1)13球問題, 一共有26種可能的情況;

2)天平一次稱量結果有3種情況(左偏,平衡,右偏), 3次稱量最多有3^3=27種情況。

這說明3次確定出這26種情況是「有可能」的!

答案很多種,也都很精彩!

正確的都是分成三組:a(a1,a2,a3,a4)、b(b1,b2,b3,b4)、c(c1,c2,c3,c4)

如果不分三組,嘿嘿,那肯定不對!

第一種方法:(分三組,a、b、c,各四個球)

(1)第一次:a :::: b,兩組稱量;

如果,a == b,a、b 組是好球,c 組(c1,c2,c3,c4)中有「壞球」;

(2)----第二次:(a1,a2)::::(c1,c2),稱量;(這裡只用了兩個球稱量!!!! )

----如果,(a1,a2)==(c1,c2),說明(c3,c4)中有「壞球」;

--------第三次:a1 :::: c3,稱量;

--------如果,a1 == c3,說明 c3 是好球,結論是:c4 是「壞球」;

--------如果,a1 != c3,說明 c4 是好球,結論是:c3 是「壞球」;

----如果,(a1,a2)!=(c1,c2),說明(c1,c2)中有「壞球」;

--------第三次:a1 :::: c1,稱量;

--------如果,a1 == c1,說明 c1 是好球,結論是:c2 是「壞球」;

--------如果,a1 != c1,說明 c2 是好球,結論是:c1 是「壞球」;

(3)如果,a != b,肯定 c 組是好球,

----有兩種情況:(左)a > b(右)(a重),或 a < b(a輕);

----以「a > b(a重,左 > 右)」為例,進行操作;

----第二次:天平左側,a 組留1個球,與 b 組3個球配成一組;

---- 天平右側,b 組還剩1個球,與 c 組3個球配成一組;

---- 即:(a1,b1,b2,b3)::::(b4,c1,c2,c3),稱量;

----此時,將出現三種情況,左 == 右,左 > 右,左 < 右;

----如果,左 == 右,那麼,問題球肯定在(a2,a3,a4)中,

---------------- 且因為(a重)為例,說明「壞球」是重的;

--------第三次:a2 :::: a3,稱量;

--------如果,a2 = a3,都是好球,結論是:a4 是「壞球」;

--------如果,a2 > a3,結論是:a2 是「壞球」,且重;

--------如果,a2 < a3,結論是:a3 是「壞球」,且重;

----如果,左 > 右,(b1,b2,b3)移動後,未引起變化,是好球,

---------------- 問題球就是(a1,b4),要麼a1重,要麼b4輕;

--------第三次:c1 :::: a1,稱量;

--------如果,c1 = a1,都是好球,結論是:b4 是「壞球」,且輕;

--------如果,c1 < a1,結論是:a1 是「壞球」,且重;

----如果,左 < 右,說明(b1,b2,b3)移位後,引起變化,有壞球,

---------------- 問題球在(b1,b2,b3)中,且「壞球」較輕;

--------第三次:b1 :::: b2,稱量;

--------如果,b1 = b2,都是好球,結論是:b3 是「壞球」,且輕;

--------如果,c1 < a1,結論是:a1 是「壞球」,且重;

其實,這道題的解法還有多種,

分別是對「第一種方法」中的(2)、(3)進行變化。

先說簡單的:(2)的變化

前提是:第一次稱量,a == b;

變化一第二次稱量:(a1,a2,a3)::::(c1,c2,c3);

如果,==,那麼,c4是「壞球」,想知輕重,與 a1 稱一下即可;

如果,>,那麼,(c1,c2,c3)中有壞球,壞球為輕;

--------第三次稱量,c1 :::: c2,

--------如平衡,c3是「壞球」,不平衡,輕的是「壞球」;

如果,<,那麼,(c1,c2,c3)中有壞球,壞球為重;

--------第三次稱量,c1 :::: c2,

--------如平衡,c3是「壞球」,不平衡,重的是「壞球」;

變化二第二次稱量:(a1,c1)::::(c2,c3);

如果,==,那麼,c4是「壞球」,想知輕重,與 a1 稱一下即可;

如果,>,那麼,(c1,c2,c3)中有壞球,要麼c1重,要麼c2或c3輕;

--------第三次稱量,c2 :::: c3,

--------如平衡,c1是「壞球」,且重;不平衡,輕的是「壞球」;

如果,<,那麼,(c1,c2,c3)中有壞球,要麼c1輕,要麼c2或c3重;

--------第三次稱量,c2 :::: c3,

--------如平衡,c1是「壞球」,不平衡,重的是「壞球」;

補充說明:這兩種變化,比之前的要好,可以知道「壞球」的輕重!

第一種方法中的(2),

有可能三次稱量後,只能判斷哪個是「壞球」,卻不知是輕是重!

12小球稱重問題

有12個小球,有乙個質量和其它十乙個不一樣,不知道是重還是輕。用乙個天秤稱三次,把這個質量不同的球給區別出來 將12個小球編號 1 c 1對比 1234 5678 1.11234 5678,則壞球在9abc中,第二次稱 1239 56ab 1.1.11239 56ab,則壞球是c 1.1.21239...

12小球稱重問題

今天上多元統計分析,聽不懂啊有木有,不想聽啊有木有!我想肯定是我昨天沒吃飽的原因,或者是老師太不關注我了!於是回想起前幾天在某個群裡看到有人問問題,問題是這樣的 12個小球,其中有個球不知輕重,但是很氣憤的是要你只能比較三次找出那個該死的小球!only 3次!於是冒著被老師關注的危險,低頭不語,pl...

12球問題的java演算法

問題 12個球中有乙個重量異常的球。請你用無砝碼天平稱三次,找出這個球來,並說出它比普通球輕或重。一組測試資料,將12個球做好標記 double a 1.0,b 1.0,c 1.0,d 1.0,e 0.9,f 1.0,g 1.0,h 1.0,i 1.0,j 1.0,k 1.0,l 1.0 顯示結果 ...