12枚硬币称重问题完全解答
晕,写了一般才发现已经有人做过了,那这里就不在重复了,转过来好了,大家look下。还误以为我先研究39枚呢,结果发现别人早给出答案了。下一个是5次120枚,重复的工作,所以编码表没有给出,有兴趣自己做喽! http://ticore.blogspot.com/2005/09/12-coins-puzzle.html 更系统的见http://www.av8n.com/physics/twelve-coins.htm 先将12枚硬币以英文字母编号 以下列方式来秤
將秤出來的結果查表,即可得知将秤出来的结果查表,即可得知
這樣的解法,沒有瑣碎的 if (...) {...} else {...}这样的解法,没有琐碎的if (...) {...} else {...} 而且這樣做的話,可以一對多,同時猜測多個對象的答案<br /> 不需要針對不同的狀況,進行下一步出牌的推理運算而且这样做的话,可以一对多,同时猜测多个对象的答案<br />不需要针对不同的状况,进行下一步出牌的推理运算 這樣簡單的公式背後是具有相當複雜的理論 但是相當具有系統性, 假如連公式推導都系統化,甚至是不需要把這公式Hard Coding在程式內 也不需要限制12枚硬幣,可以動態依據硬幣數目推導出最少的次數这样简单的公式背后是具有相当复杂的理论,但是相当具有系统性,假如连公式推导都系统化,甚至是不需要把这公式Hard Coding在程式内 也不需要限制12枚硬币,可以动态依据硬币数目推导出最少的次数 。
下面给出我的39枚硬币的结果,和上面12枚的相比没有任何新意:
将上述图中第一次中为1的硬币放入天平左边,-1放入右端,得到第一次的结果,左倾计“1”,右倾记“-1”,平衡记“0”; 第二次、第三次、第四次一样; 最后可以得到四次的结果一个4位的0,1,-1序列,对照上表查找,如找到,则说明对应的该枚硬币较其他的重; 如未找到,将序列乘以-1,重新从表中寻找,对应的那枚硬币应该较其他硬币轻。 注:上述表格特点:a.每列1和-1数目相同,每个硬币编码不通且不能够通过乘-1变成另外一个硬币的编码。
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||