八硬幣問題

2021-06-26 00:46:16 字數 1244 閱讀 1639

給出了八個硬幣,只知道其中七個都是真的,另外乙個是假的,假的那個比真的總或者比真的輕,請找出哪個是假的。

此處用決策樹來解決,決策樹演算法一般用在一些資料分類問題方面,該問題其實並不是非常適合,僅作為使用演示。決策樹是一種依託於策略選擇而建立的樹,可以是二叉樹也可以是多叉樹。決策樹有兩大優點:

1)決策樹模型可以讀性好,具有描述性,有助於人工分析;2)效率高,決策樹只需要一次構建,反覆使用,每一次**的最大計算次數不超過決策樹的深度。

為所有的硬幣賦相同的值,隨機選擇乙個來賦予不同的值,是為假硬幣。通過決策樹來選擇那個假的硬幣,詳見**:

//八枚銀幣比較問題,決策樹,根據每次比較結果的不同而採用不同的決策

#include #include using namespace std;

void coincmp(int *coins, int smallone, int bigone, int rightone)

else

coincmp(coinweight, 6, 7, 0);

} else if (coinweight[0] + coinweight[1] + coinweight[2] > coinweight[3] + coinweight[4] + coinweight[5])

else if (coinweight[0] + coinweight[3] < coinweight[1] + coinweight[4])

else

coincmp(coinweight, 5, 2, 0); }

else if (coinweight[0] + coinweight[1] + coinweight[2] < coinweight[3] + coinweight[4] + coinweight[5])

else if (coinweight[0] + coinweight[3] > coinweight[1] + coinweight[4])

else

coincmp(coinweight, 2, 5, 0); }}

int main()

srand(time(null));

ncoinweight[rand()%8] = rand()%40;

for (int i = 0; i< 8; i++)

{ cout執行結果如下:

八枚硬幣問題

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

演算法設計 八枚硬幣問題

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!八枚硬幣問題 問題描述 在八枚外觀相同的硬幣中,有一枚是假幣,並且已知假幣與真幣的重量不同,但不知道假幣與真幣相比較輕還是較重。可以通過一架天平來任意比較兩組硬幣,設計乙個高效的演算法來檢測出這枚假幣。解決思路 假定輸入的八枚硬幣 a b c d ...

我的八枚硬幣問題

實驗專案3 8枚硬幣問題 1.問題分析 這個問題就是要找出這八枚硬幣中放入假幣,前提是還不知道是偏重還是偏輕,所有,要設計乙個高效的演算法找出這麼假幣,並且得知是偏重還是偏輕。假定輸入的八枚硬幣 a b c d e f g h 把硬幣分成三組,從八枚硬幣中任取六枚a b c d e f,在天平兩端各...