n枚硬幣問題

2021-08-18 15:09:44 字數 851 閱讀 4741

大致說一下問題,就是在n枚硬幣中存在乙個假幣,但不知道假幣比真幣中還是輕,你只有乙個天秤,要你用最少的比較次數找到假幣在哪。

本來的思路是不斷二分,如果硬幣是偶數枚,那恰好能分成兩份,第一次分成的這兩份肯定乙份重乙份輕,並且無法判斷假幣在哪乙份裡。

但如果把第乙份再二分,如果重量相等的話,假幣肯定在第一次二分的第二份裡。

重複以上過程,不斷遞迴,肯定能得出結果。

奇數個硬幣的話就先去掉乙個唄,剩下的就和偶數類似了。

於是我加上了隨機生成硬幣之後,就有了如下的**:

c/c++實現

N枚硬幣問題

問題定義 已知n枚硬幣質量,其中有一枚假幣 或輕或重 請找出假幣 思路 若n 3,無法判斷 若範圍縮小至一枚硬幣,拿一枚真幣比較輕重 若範圍縮小至兩枚硬幣,拿一枚真幣與其中一枚比較輕重,縮小範圍至一枚硬幣 若範圍在三枚以上,將硬幣三分,左邊num 3枚,右邊num 3枚,其餘放中間 num為範圍大小...

八枚硬幣問題

1.問題描述 設有八枚硬幣,分別表示為a b c d e f g h,其中有且僅有一枚硬幣是假幣,並且假幣的重量與真幣的重量不同,可能輕,也可能重。現要求以天平為工具,用最少的比較次數挑選出假幣,並同時確定這枚假幣的重量比其它真幣是輕還是重。2.解題思路 八枚硬幣的判定過程可以用樹結構來描述。把硬幣...

n枚硬幣問題(假幣問題) 分治法(減治法)

1 8枚硬幣問題 在8枚外觀相同的硬幣中,有一枚是假幣,並且已知假幣與真幣的重量不同,但不知道的是假幣與真幣相比較是輕還是重。可以通過一架天平來比較兩組硬幣 減治法將原問題一分為三,8枚硬幣分別表示a,b,c,d,e,f,g,h,從8枚中取6枚在天平兩端各放3枚比較,三種結果 a b c d e f...