掷三个骰子, 猜中两个的概率

Inhibitory 2008-11-11 03:47:08
有三个骰子, 每个骰子有六面, 掷这三个骰子, 出现三个数(1到6中的一个), 然后你猜两个数, 这两个数出现在这三个数中的概率是多少?

我使用的方法是用程序模拟掷骰子1000, 10000, 1000000甚至更多次, 然后统计出其中任意两个数的组合(如 2, 5这一组合)出现的次数除上总的次数, 而计算出猜中的概率, 计算结果大概是0.14.
但是不会用数学公式表达出现, 所以想在这请教一下, 这个概率的数学理论支持.

...全文
2215 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
mao32 2008-11-12
  • 打赏
  • 举报
回复
这好比三个骰子: □ □ □

选中两个骰子的选法:■ ■ □ (1/6*1/6)
■ □ ■ (1/6*1/6)
□ ■ ■ (1/6*1/6)
共有三种选法

每个骰子有6种选法,既1/6 ;两个骰子即为1/6*1/6


所以个人认为答案应该是:3*(1/6*1/6)=1/12

DarknessTM 2008-11-11
  • 打赏
  • 举报
回复
你选的2个数相同的话
猜中概率 1/6 * 1/6 * 5/6

不相同的话
猜中概率 1/6 * 1/6 * 4/6
xianyuxiaoqiang 2008-11-11
  • 打赏
  • 举报
回复
顶6楼
xianyuxiaoqiang 2008-11-11
  • 打赏
  • 举报
回复
13.89%
xianyuxiaoqiang 2008-11-11
  • 打赏
  • 举报
回复
晕,是30/216
xianyuxiaoqiang 2008-11-11
  • 打赏
  • 举报
回复
假定我猜1,6
三个中任取一个得到1,剩下两个中任取一个得到6,最后一个任意点数。
共36种可能,但有重复:

1,6,1 1,1,6 6,1,1 1,6,6 6,1,6 6,6,1
所以实际有32种可能。作为分子

三个骰子共可以投出6*6*6种组合,作为分母

约等于14.8%
P_ghost 2008-11-11
  • 打赏
  • 举报
回复
应该再把(1/46656) * 6(6种重复情况)
也就是1/7776
P_ghost 2008-11-11
  • 打赏
  • 举报
回复
当然,我上面说的有点问题,因为每个数都看作不一样,也就是出现的两个的概率是指定骰子的。
P_ghost 2008-11-11
  • 打赏
  • 举报
回复
总情况:216
每个数出现概率同等1/216 (这里把三个骰子的数都看作不一样,也就是一共有18个数)
任意两个出现的概率为:(1/216)^2 = 1/46656
ForestDB 2008-11-11
  • 打赏
  • 举报
回复
我的想法,一共可以出现的情况是6^3。
然后2和5出现的情况:
A B C
2 5 (1 2 3 4 5 6)6种情况
5 2 (1 2 3 4 5 6)
然后2和5出现在BC,AC上,这样加起来是36种情况,
但是有重复的,减去重复的6种(252,255,522,525,225,552),所以是30种。
30/6^3 = 13.89%
brookmill 2008-11-11
  • 打赏
  • 举报
回复
唉,数学是彻底不行了,还是得靠代码解决问题。
结果:13.89%
#include <stdio.h>
#define DICE 6

int main(void)
{
int qualified = 0;
int total = 0;
int number1 = 2;
int number2 = 5;
int n[3];
int i, j, k, l;
int exist1, exist2;

for (i = 0; i < DICE; i++)
for (j = 0; j < DICE; j++)
for (k = 0; k < DICE; k++)
{
n[0] = i + 1;
n[1] = j + 1;
n[2] = k + 1;
exist1 = 0;
exist2 = 0;
for (l = 0; l < 3; l++)
{
if (n[l] == number1)
exist1 = 1;
else if (n[l] == number2)
exist2 = 1;
}
if (exist1 && exist2)
qualified++;
total++;
}
if (total)
printf("%d/%d = %5.2f%%\n", qualified, total, 100.0 * qualified / total);
return 0;
}
brookmill 2008-11-11
  • 打赏
  • 举报
回复
3楼第1条写错了,应该是:
1. 既没有2也没有5的概率:4/6 * 4/6 * 4/6
brookmill 2008-11-11
  • 打赏
  • 举报
回复
换一种思路:
1. 既没有2也没有5的概率:1 - 4/6 * 4/6 * 4/6
2. 有2但是没有5的概率:不会算
3. 有5但是没有2的概率:不会算
用1减去上述3个概率之和,应该就行了。
brookmill 2008-11-11
  • 打赏
  • 举报
回复
1楼的算法好像有问题,有些情况可能会重复计算,比如
252这样的结果,就重复出现在 A2并且BC有5 和 C2并且AB有5
所以要想办法把这种情况减去,就和0.14差不多了 :)
brookmill 2008-11-11
  • 打赏
  • 举报
回复
概率论早就忘了,随便猜一下,不知道对不对:

骰子A是2点的概率是1/6,B或C出现5点的概率是1-(5/6)*(5/6)
所以,骰子A是2点 同时 另外两个骰子至少一个是5点的概率是1/6 * (1-(5/6)*(5/6))

同样,骰子B是2点 同时 另外两个骰子至少一个是5点的概率是1/6 * (1-(5/6)*(5/6))
同样,骰子C是2点 同时 另外两个骰子至少一个是5点的概率是1/6 * (1-(5/6)*(5/6))

最后,结果是:1/6 * (1-(5/6)*(5/6)) * 3 = 0.15277

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧