我被要求(如作业的一部分)来设计一个Java程序,执行以下操作:简单的算法的执行情况(计算概率)
基本上有3张卡:
- 黑色两侧
- 红色两侧
- 黑色一侧,红色的另一边
现在,如果我随机拿一张牌并放在桌子上。面朝上的一侧是黑色的。对方也是黑人的概率是多少?
使用Java实现一个程序,并尝试发现概率,程序应模拟卡技巧大量次,并应输出卡的另一面是黑色的概率(它通过计算多少次对方也是黑色)。
但是我听说我的代码是错误的(算法明智)......显然答案不应该是0.50。我试图理解算法是否犯了错误?
任何人都可以指出我正确的方向吗? (我并不是要求你提供一个完整的工作实现,而仅仅是算法应该如何工作)。
这篇文章是非常有帮助的:http://www.codinghorror.com/blog/archives/001204.html?r=1183
只是想指出,我真的很欣赏这是一项家庭作业的诚实,而且你表明你真的尝试过。 +1表示 – aperkins 2009-12-15 20:00:10
听起来像是http://en.wikipedia.org/wiki/Monty_Hall_problem的变体 – Dolphin 2009-12-15 20:59:38
并且在该链接之后,它看起来也是http://en.wikipedia.org/wiki/Bertrand% 27s_box_paradox – Dolphin 2009-12-15 21:00:48