我被要求(作为家庭作业的一部分)设计一个执行以下操作的Java程序:
基本上有3张牌:
现在如果我随机拿一张卡片放在桌子上。朝上的一面是黑色的。对方也是黑色的概率是多少?
使用Java实现程序并尝试发现概率,程序应该多次模拟卡片技巧并且应该输出卡片另一侧是黑色的概率(它通过计算多少次来做到这一点)另一边也是黑色的。)
但是我被告知我的代码是错误的(算法明智的)......显然答案不应该是0.50。我试图理解算法时犯了错误吗?
有人能指出我正确的方向吗? (我不是要求你为我提供一个完全正常的实现,只是关于算法应该如何工作)。
答案 0 :(得分:8)
这可能对算法没有帮助,但这就是我自己得出答案的方法:
当您绘制一张随机卡并将其放在桌面上时,可能会发生六种可能发生的事情:
在这6个事件中,6个中有3个导致桌面上出现黑边卡。
在这3个事件中,恰好有两个事件是卡黑的另一面。
因此,问题的答案是“对方也是黑色的概率是多少?” 2/3 。
您的算法失败了,因为您只将black_black
卡计为单个事件,实际上是两个。
答案 1 :(得分:7)
您的算法缺少关键步骤:将卡放在桌面上。如果您绘制黑红卡,则无法保证在您放下黑色时显示黑色边。添加一个额外的步骤来模拟随机选择每张卡片的一侧,然后确定有多少个案例显示黑脸,然后有多少那些案例显示黑黑卡片。
答案 2 :(得分:4)
卡片有六面,我们假设它们具有相同的概率。有三个黑色面孔,另外两个黑色面孔。我们抛弃所有红脸最重的情况,所以我们只关注三张黑色面孔,概率相等。
因此,另一面是黑色的概率实际上是2/3。
答案 3 :(得分:0)
我认为你需要考虑红黑卡的两种可能性:红色面朝上和黑面朝上。这些概率的总和将是完全绘制红黑卡的概率。
答案 4 :(得分:0)
可能有助于检查您已正确实施的问题:假设您已经随机选择了至少一侧为黑色的卡片,那么该卡片在一侧是黑色而在另一侧是红色的几率是多少?
你没有正确实现的问题是:假设你正在看这张脸上是黑色的卡片,那么另一张脸上的红色是多少?
请注意,有两张黑卡,但有三张黑脸。
答案 5 :(得分:0)
双面红色的牌基本上是(原谅双关语)一个红色的鲱鱼 - 无论如何处理,它都会变红,我们不再需要关心它了。
只留下红/黑和黑/黑卡。再次,如果红色/黑色红色朝上,我们需要不再付费。剩下的可能性是: