题目
一只青蛙跳一次的距离为单位长度,青蛙每次跳动的方向都是完全随机的。设青蛙连续跳三次后的最终的位置距离它第一次跳动前的位置距离为d,问距离d小于1的概率是多少?
分析
这是道有趣且经典的概率问题,虽然不难,但如果要得到严格的数学解答还是需要费一番功夫的。这道题看上去属于古典概型,但是稍稍分析发现这既不能通过枚举法解答也不能构建几何概型。但是我们可以用概率论的思维快速估算出近似答案,当实验次数足够大的情况下,频率会越来越趋近概率。
C++程序实现
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
double x1, y1, x2, y2;
int sum = 0;
double possibilty;
for (int i = 1; i <= 360; ++i)
{
x1 = 1 + cos(i);
y1 = sin(i);
for (int j = 1; j < 360; ++j)
{
x2 = x1 + cos(j);
y2 = y1 + sin(j);
if ((x2*x2 + y2*y2) <= 1)
++sum;
cout << sum << endl;
}
}
possibilty = sum / (360.0*360.0);
cout << "possibilty=" << possibilty << endl;
system("pause");
return 1;
}
当实验次数为 360∗360=129600 360 ∗ 360 = 129600 时,概率为0.249035。
数学解答
思路:如图所示,原点A为青蛙第一次的起跳点,设点B为青蛙第二次起跳点。不是一般性,以AB为连线为x轴建立直角坐标系。设点C为青蛙第三次起跳点,不难得出∠CBx=∠BCD=θ。青蛙最终只有落在∠BCD的范围内,其距离d才能小于1,所以第二次起跳的结果影响第三次起跳的结果。由于图像的对称性(关于X轴),因此当考虑第二次起跳的角度θ,可以只考虑在X轴上面部分的,那么θ的取值为0-π。
事件 Aθ A θ :角度为θ的概率(θ的取值为0-π)
事件 B B :距离d小于1的概率
当角度为θ时,事件A的概率为0,而在A发生的条件下事件B发生的概率为