-
Web 鏈結。
看看這次會議的解釋,你就會明白了。
-
關於這種遞迴窮舉**,我認為:
1)在語義上理解了整體的作用之後,看起來會容易得多。否則,您將被無窮無盡的入口和出口堆疊所淹沒。
2)沒有必要進入下乙個遞迴級別,而是跳過遞迴,1)理解語義**。如果能從邏輯上解釋,就說明這個**基本正確。
3)最後再看一遍,只要你確保每個分支都去了,你就可以認為演算法是正確的。
使用上述想法來閱讀 DFS。
1)大致了解DFS的基本功能,並(從第乙個箱子開始)找到第乙個箱子的工作卡。也就是說,DFS(1) 是查詢第乙個箱子的可用牌,DFS(2) 是查詢第二個箱子的可用牌,DFS(STEP) 是查詢第乙個箱子的可用牌。 切記不要進入遞迴,否則會沒完沒了,電腦不會頭暈,你會先頭暈。
2)現在可以稍微仔細閱讀一下。for 迴圈中的 i 列舉所有牌,以確定它們是否可用於下乙個箱子。 我們可以想象,在此之前,這些卡片已經從第 1 步到第 1 步的箱子中被發現。
找到第一張牌的牌後,呼叫def(step+1)繼續尋找下一張箱子的牌。 切記不要閱讀 def(step+1) 的詳細資訊! 最後,book[i]=0 表示可用的卡牌被釋放用於後續寶箱。
從邏輯上講,這已經很清楚了。 例如,在第乙個寶箱中,for 迴圈可以玩 9 次,每次你找到 1 張可用牌。 對於第二個箱子,for 迴圈可以做 8 次,因為乙個已經被分割了。
以此類推,所有寶箱都由def(step+1)處理,並且還有機會獲得任何卡牌。 它表明窮舉動作完成,演算法正確。
同樣,def(step+1) 表示第乙個箱子已經找到了一張可用的牌,可以嘗試下一張牌。 for 迴圈是確保第乙個寶箱可以找到所有當前可用的卡牌,然後使用 def(step+1)嘗試下乙個寶箱。 如果你把排列和組合學得好一點,你就會明白這是乙個9!
實現。
-
打了很久,還是全部刪掉了。
給出建議:參考書中的說明,一步一步地理解示例(**,進入函式逐步完成除錯)。
-
你應該直接拍攝問題,這比拍攝解決問題的過程要有用得多。
《歡喜沙》這首詩是蘇軾在徐州43歲時寫的,當時他太守時了。 那年春天,徐州大旱,蘇軾以縣長的身份,率領百姓到城東二十里的石潭請雨。 下雨後,他和老百姓一起去石潭感謝雨水。 >>>More