2009-12-15 92 views
14

我被要求(如作業的一部分)來設計一個Java程序,執行以下操作:簡單的算法的執行情況(計算概率)


基本上有3張卡:

  • 黑色兩側
  • 紅色兩側
  • 黑色一側,紅色的另一邊

現在,如果我隨機拿一張牌並放在桌子上。面朝上的一側是黑色的。對方也是黑人的概率是多少?

使用Java實現一個程序,並嘗試發現概率,程序應模擬卡技巧大量次,並應輸出卡的另一面是黑色的概率(它通過計算多少次對方也是黑色)。


但是我聽說我的代碼是錯誤的(算法明智)......顯然答案不應該是0.50。我試圖理解算法是否犯了錯誤?

任何人都可以指出我正確的方向嗎? (我並不是要求你提供一個完整的工作實現,而僅僅是算法應該如何工作)。


這篇文章是非常有幫助的:http://www.codinghorror.com/blog/archives/001204.html?r=1183

+12

只是想指出,我真的很欣賞這是一項家庭作業的誠實,而且你表明你真的嘗試過。 +1表示 – aperkins 2009-12-15 20:00:10

+0

聽起來像是http://en.wikipedia.org/wiki/Monty_Hall_problem的變體 – Dolphin 2009-12-15 20:59:38

+2

並且在該鏈接之後,它看起來也是http://en.wikipedia.org/wiki/Bertrand% 27s_box_paradox – Dolphin 2009-12-15 21:00:48

回答

8

這可能不與算法的幫助,但是這是我怎麼會得出自己的答案:

當你畫一個隨機卡,並把它放在桌子上,有六個同樣可能發生的情況可能是:

  1. 您選擇了R/R卡並將其重新朝上。
  2. 您選擇R/R卡並將另一面朝上放置。
  3. 您選擇了B/R卡並將其放置在黑色的一面。
  4. 您選擇了B/R卡並將其放置在紅色的一面。
  5. 您選擇了B/B卡並將其放置在黑色的一面。
  6. 您選擇了B/B卡,並將另一面黑色。

在這六個事件中,6個事件中有3個導致桌面上的黑麪向上卡。

在這3個事件中,恰好其中兩個是卡片黑色的另一面。

因此,問題的答案是「對方也是黑色的概率是多少?」是2/3

算法失敗,因爲您只計算black_black卡作爲單個事件發生,實際上它是兩次。

+0

是的,我知道了!非常感謝你,馬特,我從頭開始實施你的建議,我得到2/3的所需概率。再次 謝謝,我標誌着你的答案是正確的,因爲它是最有幫助的。 – James 2009-12-15 21:14:01

7

你的算法缺少了關鍵的一步:把卡放在桌子上。如果您繪製黑紅卡,則無法保證黑方在放下時顯示。添加一個額外的步驟來模擬隨機選擇每張卡的一面,然後確定有多少箱顯示黑色面,然後有多少箱顯示黑色黑色卡。

+0

哦,對,我基本上做的是計算每次我畫一張牌的概率,它是黑色的一面朝上,這是3/6。 我試圖按照你所描述的方式來實現它,但是我得到了約0.75的概率。我可能做錯了什麼......用新代碼編輯我的第一篇文章。 – James 2009-12-15 20:29:19

+1

你需要停止忽略紅牌,並更加明確地繪製步驟,以瞭解發生了什麼。 @大衛Thornley和@matt b都有正確的答案。 故事的寓意是:不要因爲你不認爲它們對結果有貢獻而跳過算法中的步驟。 – 2009-12-15 20:37:26

+2

至於你爲什麼現在得到3/4 - 你的代碼假設給定黑色的一面,另一面的紅色或黑色的可能性是統一的 - 但事實並非如此!這正是你想要計算的!我建議完全採用不同的方法,讓你的代碼模擬所有可能的事件(不僅僅是那些黑色的一面),並計算出這些事件的可能性。 – 2009-12-15 20:52:01

0

我認爲你需要考慮繪製紅黑卡的兩種可能性:紅色側面和黑色側面。這些概率的總和將是紅黑卡被抽出的概率。

4

卡片有六面,我們會假設它們具有相同的概率。有三個黑色的臉,其中兩個黑色的另一邊。我們丟棄所有紅臉最高的情況,所以我們只關心三個黑臉,概率相等。

因此,其他人臉是黑色的概率實際上是2/3。

0

這可能有助於檢查您已正確實施的問題:鑑於您已隨機挑選至少一面爲黑色的卡片,卡片一側爲黑色並且卡片爲紅色其他?

你沒有正確實施的問題是:鑑於你正在看這張臉上是黑色的卡片,在另一張臉上它有紅色的可能性是多少?

請注意,有兩張黑卡,但有三張黑麪。

0

兩面紅色的卡基本上(原諒雙關語)一個紅鯡魚 - 任何方式處理,它會呈現紅色,我們不需要再關心它。

只留下紅/黑和黑/黑卡。再一次,如果紅/黑色處於紅色的一面,我們就不需要再關注了。剩餘的可能性是:

  1. 紅色/黑色,黑色向上
  2. 黑色/黑色,第一面朝上
  3. 黑色/黑色,第二側朝上
由於兩個這三個有另一側的黑色的,概率是兩列三個。