练习4.圆中四只鸭子在同一个半圆的概率——MATLAB-程序员宅基地

技术标签: matlab  概率论  

练习题

4.圆中四只鸭子在同一个半圆的概率
参考思路: 蒙特咔罗法 (进行N次试验,每次试验生成4个随机点,统计四点在同一个半圆的个数)相关知识点: input、if...else、for循环或while循环、rand、disp


%思路简单,易于实现,但是不优雅

N = 4;
total = 10000000;
count = 0;

for e = 1:total


    p1 = 2*[rand ,rand] - 1;
    p2 = 2*[rand ,rand] - 1;
    p3 = 2*[rand ,rand] - 1;
    p4 = 2*[rand ,rand] - 1;

    % p1作为第一点计算斜率,其余点计算截距
    k = p1(2) / p1(1);
    b1 = p2(2) - k*p2(1);
    b2 = p3(2) - k*p3(1);
    b3 = p4(2) - k*p4(1);

    if(b1 >= 0 & b2 >= 0 & b3>= 0) | (b1 <= 0 & b2 <= 0 & b3<= 0)
        count = count + 1;
        continue;
    end

    % p2作为第一点计算斜率,其余点计算截距
    k = p2(2) / p2(1);
    b1 = p1(2) - k*p1(1);
    b2 = p3(2) - k*p3(1);
    b3 = p4(2) - k*p4(1);
    if(b1 >= 0 & b2 >= 0 & b3>= 0) | (b1 <= 0 & b2 <= 0 & b3<= 0)
        count = count + 1;
        continue;
    end

    % p3作为第一点计算斜率,其余点计算截距
    k = p3(2) / p3(1);
    b1 = p2(2) - k*p2(1);
    b2 = p1(2) - k*p1(1);
    b3 = p4(2) - k*p4(1);
    if(b1 >= 0 & b2 >= 0 & b3>= 0) | (b1 <= 0 & b2 <= 0 & b3<= 0)
        count = count + 1;
        continue;
    end
    %p4作为第一点计算斜率,其余点计算截距
    k = p4(2) / p4(1);
    b1 = p2(2) - k*p2(1);
    b2 = p3(2) - k*p3(1);
    b3 = p1(2) - k*p1(1);
    if(b1 >= 0 & b2 >= 0 & b3>= 0) | (b1 <= 0 & b2 <= 0 & b3<= 0)
        count = count + 1;
    end
end

res= count / total;
disp(res);


% 化简的写法
N = 4;
total = 10000000;
count = 0;

for e = 1:total

    p1 = 2*[rand ,rand] - 1;
    p2 = 2*[rand ,rand] - 1;
    p3 = 2*[rand ,rand] - 1;
    p4 = 2*[rand ,rand] - 1;
    p =[p1;p2;p3;p4];%[4,2]

    % 依次让每个点作为第一个点,计算斜率
    for i = 1:N
        k = p(i,2) / p(i,1);
        b =[]; % 保存截距的矩阵
        % 计算截距
        for j = 1:N
            if j == i
                continue;
            else
                b = [ b, p(j,2) - k*p(j,1)];
            end
        end

        if (b(1) >= 0 & b(2) >= 0 & b(3) >= 0) | (b(1) <= 0 & b(2)<= 0 & b(3) <= 0)
            count = count + 1;
            break;
        end
    end

end

res= count / total;
disp(res);

2021年8月27日笔记

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_46427623/article/details/120051056

智能推荐

如何用原生js封装一个类似jq的选择器_原声js实现jq元素选择器-程序员宅基地

文章浏览阅读1.4k次。1、我们先了解一下原生js中的选择器ID选择器(在整个文档中获取id为xxx的元素)document.getElementId([ID]);类名选择器(在整个文档中或者在指定上下文中获取类名为xxx的元素)document.getElementsByClassName(' ');[context].getElementsByClassName(' ');标签名选择器(在整个文档中或者..._原声js实现jq元素选择器

Hive中partition by和distribute by区别_partition by distribute by-程序员宅基地

文章浏览阅读1.2k次,点赞3次,收藏4次。通常查询时会对整个数据库查询,而这带来了大量的开销,因此引入了partition的概念,在建表的时候通过设置partition的字段, 会根据该字段对数据分区存放,更具体的说是存放在不同的文件夹,这样通过指定设置Partition的字段条件查询时可以减少大量的开销。1)partition by [key..] order by [key..]只能在窗口函数中使用,而distribute by [key...] sort by [key...]在窗口函数和select中都可以使用。_partition by distribute by

游标(cursor )是什么?_c# cursor-程序员宅基地

文章浏览阅读7.3k次。Private SQL Area A private SQL area holds information about a parsed SQLstatement and other session-specific information for processing. When a serverprocess executes SQL or PL/SQL code, the process_c# cursor

listview使用的一些心得_listview的使用——购物商城实验心得-程序员宅基地

文章浏览阅读616次。近日在用ListView中的一些注意点,和公用代码,整理如下1.ListView.Items.Clear而不是ListView.Clear一般如果ListView是动态填充的,我们在填充之前都会先进行清理。但需要注意一下,我们是清理Items,如果去直接Clear整个ListView,就连原先定义好的列都没有了2.给ListView绑定数据ListView并不能直接_listview的使用——购物商城实验心得

【数据结构】哈希表——C语言_c语言哈希表-程序员宅基地

文章浏览阅读6.1k次,点赞19次,收藏74次。主要介绍C语言提供的哈希函数。_c语言哈希表

性能分析之两个性能瓶颈分析案例_客户性能分析案例-程序员宅基地

文章浏览阅读3.1k次,点赞2次,收藏8次。最近处理了几个项目中的性能问题,来跟大家唠唠。这几个问题是非常常见的。性能瓶颈就有这么个特点,大部分瓶颈分析到最后,都给人有一种猛拍大腿突然醒悟的感觉。但是在分析到具体的原因之前,都是抓耳挠腮,百思不解。这就是性能瓶颈的魅力所在了。问题一:单队列网卡导致软中断高这个问题在专栏也好,公众号文章也好,都不止一次描述过。但是看到过的同学们似乎还是没办法在项目中非常快速地定位出来。问题的现象我就不描述了,无非就是 TPS 压不上去。先看一下这个压力的路径。这是一个清晰的路径。我们直接来说判断的关_客户性能分析案例

随便推点

分享2024最新最全Java面试清单,Java后端高频考点500+-程序员宅基地

文章浏览阅读977次,点赞17次,收藏28次。针对最近很多人都在面试,我这边也整理了相当多的面试专题资料,也有其他大厂的面经。希望可以帮助到大家。下面的面试题答案都整理成文档笔记。也还整理了一些面试资料&最新2021收集的一些大厂的面试真题(都整理成文档,小部分截图)最新整理电子书《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!在面试,我这边也整理了相当多的面试专题资料,也有其他大厂的面经。希望可以帮助到大家。下面的面试题答案都整理成文档笔记。

python大小写字母转换_python把大写字母变成小写字母的编程-程序员宅基地

文章浏览阅读476次。【代码】python大小写字母转换。_python把大写字母变成小写字母的编程

【语音识别】MFCC+VQ说话人识别系统【含GUI Matlab源码 1153期】-程序员宅基地

文章浏览阅读24次。MFCC+VQ说话人识别系统完整的代码,方可运行;可提供运行操作视频!适合小白!

GPS数据处理——mooc《零基础学Java语言》-(浙大翁凯)第六周编程题(2)-程序员宅基地

文章浏览阅读351次。题目内容:NMEA-0183协议是为了在不同的GPS(全球定位系统)导航设备中建立统一的BTCM(海事无线电技术委员会)标准,由美国国家海洋电子协会(NMEA-The National Marine Electronics Associa-tion)制定的一套通讯协议。GPS接收机根据NMEA-0183协议的标准规范,将位置、速度等信息通过串口传送到PC机、PDA等设备。N..._7-1 gps数据处理分数 15全屏浏览题目切换布局作者 翁恺单位 浙江大学nmea-0183协

C#Winform DataGridView问题:列的 FillWeight 值总和不能超过 65535_fillweight值总和不能超过65535-程序员宅基地

文章浏览阅读3.4k次,点赞2次,收藏2次。列的 FillWeight 值总和不能超过 65535这里写自定义目录标题写程序添加列时,超过655列会报错,而我的列为900多列。看了下报错,查了下fillweight是相对于其他列的显示宽度,初始值为100,所以655列就达到了上限。csdn上的建议基本是换控件或者循环绑定列,但我是绑定datatable,循环会很麻烦,在stackflow上搜索了下得到了一个很好的解决方案,记录一下://绑定datagridview事件columnAdded。private void dataGridViewN_fillweight值总和不能超过65535

jsp运行原理-程序员宅基地

文章浏览阅读164次。下面看看JSP文件在各个阶段的内容。源文件:success.jsp&lt;%@ page contentType="text/html;charset=gb2312"%&gt;&lt;html&gt;&lt;head&gt;&lt;title&gt;登录成功&lt;/title&gt;&lt;/head&gt;&lt;body&gt;&_每一个jsp在执行时会先转化为( )。

推荐文章

热门文章

相关标签