两道概率论的试题

题目:

1.A、B两国元首准备某天在禄口机场交换件重要文件,如果A国专机先到,会在机场等上一个小时,而如果B国专机先到会等上两个小时,两国专机只能在20点到24点降落在机场,且降落时间服从均匀分布,问两国能顺利交换文件的概率是多少。(假如交换文件不需要时间)

2.假如有了一个从自然数中随机取一个数的函数rand(7)——从0到7中随机取一个自然数出来,问如何用这个函数构造rand(10)——随机从0到10中取一个自然数出来。(提示:需要注意函数的分布,也可以用蒙特卡洛的方法)

解决思路:

第一题解决思路,均匀分布可以先进行坐标平移,便于画坐标轴。整个事件平移到X轴0~4,Y轴0~4的坐标轴上,根据题目给出的条件,画出函数。

字体有点草,大家可以自己试着做下。

图片发自App

第二题有人问为什么不直接取两个rand加运算,然后去除多出的部分,因为这样取的话得到的结果就不是均匀分布了。

图片发自App

我是用matlab验证了下,因为matlab对数值处理比较强大,所以比较直观,先用上诉方法写个函数:

function rs = rand_ten()

while i < 10

    j=1;

    a1(j) = randi([0 7]);  %8进制高位

    a2(j) = randi([0 7]);  %8进制低位

    rand_all(j) = a1(j)*8+a2(j);

    if rand_all(j)<55

        rs = rem(rand_all(j),11);  %0~10d的自然数,包含0和10

        break

    end

    j=j+1;

end

根据蒙特卡洛方法,取一万个数值验证概率分布情况。

b(1:8)=0;

for i =1:100000

    a(i)=randi([0 7]);

    for j = 0:7

        if a(i) == j

        b(j+1) = b(j+1)+1;

        end

    end

end

disp('rand(7)取值次数:')

b %rand函数服从均匀分布

ten_num(1:11) = 0;

for i =1:100000

    test(i)=rand_ten();

    for j = 0:10

        if test(i) == j

        ten_num(j+1) = ten_num(j+1)+1;

        end

    end

end

disp('rand(10)取值次数:')

ten_num  %验证函数是否服从均匀分布

运行后得到如下结果:

图片发自App

图片可以看出matlab自带的rand函数是均匀分布的,通过rand函数构造的随机取0到10的函数也是均匀分布的。

你可能感兴趣的:(两道概率论的试题)