首先定義一套規則:
題目中的瓶子總共有三種,最大的a,中等的b,最小的c,我們規定:
最大的瓶子只能往中等的瓶子倒;(若中等的瓶子為空)
中等的瓶子只能往最小的瓶子倒;(若最小的瓶子不滿)
最小的瓶子只能往最大的瓶子倒;(若最小的瓶子已滿)
145.韓信走馬分油 (15分)c時間限制:3000 毫秒 | c記憶體限制:3000 kb
題目內容:
泊松是法國數學家、物理學家和力學家。他一生致力科學事業,成果頗多。有許多著名的公式定理以他的名字命名,比如概率論
中著名的泊松分布。 有一次閒暇時,他提出過乙個有趣的問題,後稱為:「泊松分酒」。在我國古代也提出過類似問題,遺憾
的是沒有進行徹底探索,其中流傳較多是:「韓信走馬分油」問題。 有3個容器,容量分別為12公升,8公升,5公升。其中12公升中裝
滿油,另外兩個空著。要求你只用3個容器操作,最後使得某個容器中正好有6公升油。 下面的列表是可能的操作狀態記錄:12,0,0
4,8,0
4,3,5
9,3,0
9,0,3
1,8,3
1,6,5
每行3個資料,分別表示12,8,6公升容器中的油量
第一行表示初始狀態,第二行表示把12公升倒入8公升容器後的狀態,第三行是8公升倒入5公升,...
當然,同乙個題目可能有多種不同的正確操作步驟。 本題目的要求是,請你編寫程式,由使用者輸入:各個容器的容量,開始的
狀態,和要求的目標油量,程式則通過計算輸出是否可能分成功-「y」,「n」。
例如,使用者輸入:
12,8,5,12,0,0,6
使用者輸入的前三個數是容器容量(由大到小),接下來三個數是三個容器開始時的油量配置,最後乙個數是要求得到的油量(放在
哪個容器裡得到都可以) 則程式可以輸出「y」
輸入描述
各個容器的容量,開始的狀態,和要求的目標油量
輸出描述
是否可能分成功-「y」,「n」
輸入樣例
12,8,5,12,0,0,6
輸出樣例
y
#include intview codemain()
else
}if(cc
else
}if(cc ==c)
else
}if(aa == t || bb == t || cc ==t)
if(aa == a && bb == b && cc == c)
} return0;
}
韓信走馬分油,A 啟發式搜尋
題目內容 泊松是法國數學家 物理學家和力學家。他一生致力科學事業,成果頗多。有許多著名的公式定理以他的名字命名,比如概率論 中著名的泊松分布。有一次閒暇時,他提出過乙個有趣的問題,後稱為 泊松分酒 在我國古代也提出過類似問題,遺憾 的是沒有進行徹底探索,其中流傳較多是 韓信走馬分油 問題。有3個容器...
小孩分油問題
1.問題描述 兩個小孩去打油,一人帶了乙個一斤的空瓶,另乙個帶了乙個七兩 乙個三兩的空瓶。原計畫各打一斤油,可是由於所帶的錢不夠,只好兩人合打了一斤油,在回家的路上,兩人想平分這一斤油,可是又沒有其它工具,試僅用三個瓶子 一斤 七兩 三兩 精確地分成兩個半斤油來。2.演算法設計 假設狀態a x1,x...
程式碎片 分油問題 bfs
這個問題是看演算法精華版時候看見的,人家的演算法看了很頭大,自己寫一遍後覺得清楚多了 using system using system.collections.generic using system.linq using system.text using system.windows.form...