在抽屜裡有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...