演算法謎題2,手套選擇

2022-02-12 07:44:04 字數 1094 閱讀 4326

在抽屜裡有20只手套。其中,5雙**套,3雙棕色手套和2雙灰手套。你只能在黑暗中挑手套,並且只能將手套挑出之後才能檢查顏色。最少要挑多少次才能滿足以下條件

a> 至少挑出一雙顏色匹配的手套

b> 所有顏色的手套都至少挑出一雙匹配的。

總計有5 * 5 * 3 * 3 * 2 * 2 =900種狀態,單向圖,每個頂點最多會與6個其他頂點相連。遍歷圖可以找到所有解,取最長路徑。

但是否一定要這樣窮舉呢, 如果是由人類來計算,在反向最優的選擇下可以將問題的描述轉換為以下形式,然後在其結果的基礎上+ 1。

在滿足以下條件的前提下,最多可以挑多少次:

a> 不能挑出任何一雙顏色匹配的手套。 20 / 2 + 1 = 11

b> 至少有一種顏色的手套湊不齊一雙。 20 - 2 + 1 = 19

每一次都遍歷6種選擇,找乙個滿足條件的挑選方式,直到不能再挑為止。

class program

次才能至少挑出一雙顏色匹配的手套");

//b:

var a = function((state) => !state.hasblackpair());

var b = function((state) => !state.hasblownpair());

var c = function((state) => !state.hasgreypair());

console.writeline($"最少要挑次才能所有顏色的手套都至少挑出一雙匹配的");

console.readkey();

}private static int function(funcpredicate)

else

}return sum + 1;

}}public class state

; public bool tryaddone(funcpredicate)

else}}

return false;

}public bool hasblackpair()

public bool hasblownpair()

public bool hasgreypair()

}

桃花堤遊記 小露一手套圈絕技!

今日甚好,約幾好友,桃花堤一遊。由西沽沿運河向西北直到桃花口 桃花渡和桃花寺,人稱 楊柳桃花三十里 最早描述桃花堤的詩歌,是元代詩人成始終寫的 發桃花口直沽舟中述懷 直沽洋裡白沙村,百丈牽船日未昏。楊柳人家翻海燕,桃花春水上河豚。明清時期,描述桃花堤的詩詞更多,如查昌業 即景 尋芳步步踏青來,柳外何...

排序演算法2 選擇排序

選擇排序 selection sort 通過多次比較和交換來實現排序,其排序流程如下 1.選取陣列中最小的乙個元素和陣列的第乙個元素交換。2.接著從剩下的所有元素中選擇最小的與第二個元素交換。3.和第二步同樣的方法對剩下的所有元素進行排序,最後便可得到按照從大到小的順序排好陣列中的各元素。具體過程如...

排序演算法 2 選擇排序

簡單選擇排序是一種選擇排序。選擇排序 每趟從待排序的記錄中選出關鍵字最小的記錄,順序放在已排序的記錄序列末尾,直到全部排序結束為止。簡單排序很簡單,它的大致處理流程為 動態效果示意圖 舉例說明,處理過程示意圖如下所示 如圖所示,每趟排序中,將當前第i小的元素放在位置i上。c include incl...