java實現分酒(泊松分酒)

2021-08-27 09:15:42 字數 1582 閱讀 3256

寫在前面:

泊松分酒:

法國著名數學家波瓦松在青年時代研究過乙個有趣的數學問題:假設某人有12品脫的啤酒一瓶,想從中倒出六品脫,但是恰巧身邊沒有6品脫的容器,僅有乙個8品脫和乙個5品脫的容器,怎樣倒才能將啤酒分為兩個6品脫呢?現在,請你設計乙個程式,可以根據輸入的滿瓶容量(a),和兩個空瓶的容量(b和c)對倒,獲得最終需要的容量(d)。

上週考筆試,有道題可能出現,想了n久也不會。最後考試中雖然沒考它,但是突然就想明白了。

/*** @discription 酒瓶是8公升酒,有兩個杯,分別為3公升和5公升,現在想得到兩杯4公升的酒。

* 腫麼分這瓶酒啊?

*/void text()

/***

* 倒酒方法

* @param i 盛酒

* @param j 倒酒

* @param wine 三個容器中酒量的陣列

* @param cup 酒瓶和兩個杯子容量的陣列

* @param sunxu 酒瓶和兩個杯子順序的陣列

* @param n 迴圈次數

* @param d 要得到的酒量

* @return

*/int daoba(int i,int j,intwine,intcup,intsunxu,int n,int d)

//第一杯接滿,第二杯倒空

}else if(wine[j]+wine[i]==cup[i])

return n;

}

/*** 分酒方法

* 1.先將杯子排序,大杯子放前面,小杯子放後面

* 2.酒瓶的酒先倒入大杯子

* 3.大杯子的酒倒入小杯子

* 4.小杯子酒倒入瓶中

* 5.如果大杯子有酒,那麼將其倒入小杯子後再將瓶中酒倒入大杯子

* 6.重複此過程,直到其中兩個容器中都有d公升酒

* @param a 酒瓶容量

* @param b 第乙個杯子

* @param c 第二個杯子

* @param d 要得到的酒量

*/void fenjiu(int a,int b,int c,int d);

int cup=;

int sunxu=;

int n = 0;

int timeo = 0;//執行次數

//排列杯子

if(cup[1]2)

if(wine[i]!=0&&wine[j]!=cup[j])

timeo++;}}

system.out.println(timeo);

}

寫在後面:

後來網上搜,正解,也就是最優解是通過廣度搜尋演算法得到的。

這個,等有靈感了再寫。

突然覺得演算法也挺好玩兒的啊!

*****************************格嘰格嘰*****************************

「好男人不會讓心愛的女人受一點點傷」————張赫宣唱的真不錯!是吧?lysh

泊松分酒 15

題目內容 有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...

泊松分酒(深搜)

泊松是法國數學家 物理學家和力學家。他一生致力科學事業,成果頗多。有許多著名的公式定理以他的名字命名,比如概率論中著名的泊松分布。有一次閒暇時,他提出過乙個有趣的問題,後稱為 泊松分酒 在我國古代也提出過類似問題,遺憾的是沒有進行徹底探索,其中流傳較多是 韓信走馬分油 問題。有3個容器,容量分別為1...

趣味演算法之泊松分酒

有乙個12品脫 pint 的酒瓶,裡面裝滿葡萄酒,另有8品脫和5品脫的瓶子各乙個。問如何從中分出6品脫的酒出來?傳說泊松年輕時成功解決了該問題,勾起了他對數學的興趣而投身數學研究,因此該問題被稱為泊松分酒問題。另外這個問題又被稱為分油問題啦,分水問題啦等等。小學的時候在一本 十萬個問什麼 數學卷 中...