MCM备赛笔记——蒙特卡罗方法

Key Concept

蒙特卡罗方法(Monte Carlo Method),也称为统计模拟方法,是一种基于概率和统计的数值计算方法。该方法使用随机数(或更常见的伪随机数)来解决可能非常复杂的数学或物理问题。蒙特卡罗方法广泛应用于金融、物理、工程、运筹学等领域。

建模思路

  1. 定义问题的概率模型

    • 确定问题的数学或物理模型,并将其转化为可以通过概率方法解决的形式。
  2. 生成随机数

    • 根据问题的概率分布生成随机数或伪随机数序列。
  3. 进行模拟实验

    • 利用随机数进行大量模拟实验或计算,得到问题的近似解。
  4. 收集结果并分析

    • 收集和记录每次模拟实验的结果,对这些数据进行统计分析。
  5. 结果的估计和验证

    • 通过模拟实验结果的分析得到问题的统计特性,如均值、方差等,并据此估计问题的解。
    • 可以通过多次模拟实验来提高结果的准确度。
  6. 误差估计

    • 评估模拟结果的误差范围,通常误差与模拟次数的平方根成反比。

示例

1.模拟求解圆周率

用随机投掷的点数来模拟计算圆周率

#使用蒙特卡罗方法近似求解圆周率
import random
import math
import time
#这里我们设置圆的半径为1,那么圆的面积就是pi
#而正方形的面积就是4
#那么圆的面积和正方形的面积的比值就是pi/4
#我们可以随机产生一些点,然后判断这些点是否在圆内
#如果在圆内,那么就计数,计数的值和总数的比值就是S(圆)/S(正方形)=pi*r^2/4r^2=pi/4 =》 pi = 4*S(圆)/S(正方形) =》 pi = 4*hits/DARTS

DARTS = 100000000#抛洒点的总数
hits = 0.0

start = time.perf_counter()#计时开始
for i in range(1, DARTS+1):
    x, y = random.random(), random.random()#随机产生一个0~1的浮点数
    dist = math.sqrt(x**2 + y**2)#计算点到圆心的距离
    #判断点是否在圆内
    if dist <= 1.0:
        hits += 1
pi = 4 * (hits/DARTS)
print("Pi的值是:{}".format(pi))

2.模拟三门问题

蒙提霍尔问题(英文:Monty Hall problem),亦称为蒙特霍问题山羊问题三门问题,是一个源自博弈论的数学游戏问题,参赛者会看见三扇门,其中一扇门的里面有一辆汽车,选中里面是汽车的那扇门,就可以赢得该辆汽车,另外两扇门里面则都是一只山羊。当参赛者选定了一扇门,主持人会开启另一扇是山羊的门;并问:“要不要换一扇门?”依照玛丽莲·沃斯·莎凡特的见解,参赛者应该换,换门的话,赢得汽车的概率是2/3。这问题亦被叫做蒙提霍尔悖论:因为该问题的答案虽在逻辑上并无矛盾,但十分违反直觉。

蒙提霍尔问题得名于主持人蒙蒂·霍尔,他主持美国的电视游戏节目《Let's Make a Deal》时,会有这样的游戏,他也确实会先开启另一扇是山羊的门,来吸引观众眼球;但他不会允许参赛者换门。蒙提霍尔问题首次出现,可能是在1889年约瑟夫·贝特朗所著的Calcul des probabilités一书中。在这本书中,这条问题被称为“贝特朗箱子悖论”(Bertrand's Box Paradox)。另一种形式则是三囚问题(Three prisoners problem),原理是一模一样的,1959年出现在马丁·加德纳的《数学游戏》专栏中,其后被改编成各种语言的版本。

某校某系概率论期中考试题

#用蒙特卡洛方法求解三门问题

import random

def hall(simulation,change_door):
    win_count=0

    for i in range(simulation):
        prize_door=random.randint(0,2)
        choice_door=random.randint(0,2)
        host=[i for i in range(3) if i!=choice_door and i!=prize_door][0]

        if change_door:
            choice_door=[i for i in range(3) if i!=choice_door and i!=host][0]
        
        if choice_door==prize_door:
            win_count+=1

    return win_count/simulation

simulation=1000000
change_rate=hall(simulation,True)
no_change_rate=hall(simulation,False)

这里看出一定要换门..........

这个问题实在是反人类直觉,贝叶斯公式也能推导这个问题的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/335069.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

用git bash调用md5sum进行批量MD5计算

对于非常大的文件或者很重要的文件&#xff0c;在不稳定的网络环境下&#xff0c;可能文件的某些字节会损坏。此时&#xff0c;对文件计算MD5即可以校验其完整性。比如本次的 OpenStreetMap 导出包&#xff0c;我的学弟反馈通过网盘下载无法解压&#xff0c;并建议我增加每个文…

web学习笔记(十六)

目录 HTML5新增标记汇总 1.新增语义化标签 2.新增音频和视频标签 2.1音频标签 audio 2.1视频标签 video 3.新增图像标签 4.新增表单元素和表单控件 5.新增应用程序标签&#xff08;使用率较低&#xff09; HTML5新增标记汇总 1.新增语义化标签 新增语义化标签能够便于…

BossCMS RCE

简介 BossCMS是一款基于自主研发PHP框架MySQL架构的内容管理系统&#xff0c;能够满足各类网站开发建设的需求。系统开源、安全、稳定、简洁、易开发、专注为中小型企业及政企单位、个人站长、广大开发者、建站公司提供一套简单好用的网站内容管理系统解决方案。官网提供了大量…

Linux 可观测性 BPFeBPF 以及 BCCbpftrace 认知

写在前面 博文内容为 《BPF Performance Tools》 读书笔记整理&#xff0c;对原书内容做了摘要博文内容涉及&#xff1a; BPF 和 eBPF 认知BCC 和 bpftrace 认知BCC 和 bpftrace 工具简单认知 理解不足小伙伴帮忙指正 对每个人而言&#xff0c;真正的职责只有一个&#xff1a;找…

PTA 6-11 先序输出叶结点

本题要求按照先序遍历的顺序输出给定二叉树的叶结点。 函数接口定义&#xff1a; void PreorderPrintLeaves( BinTree BT ); 其中BinTree结构定义如下&#xff1a; typedef struct TNode *Position; typedef Position BinTree; struct TNode{ElementType Data;BinTree Left…

C++ | 五、哈希表 Hash Table(数组、集合、映射)

哈希表基础 哈希表是一种数据结构&#xff08;哈希表包含数组&#xff0c;和前两篇文章叙述的字符串、链表平级&#xff09;哈希表概念&#xff1a;类似于Python里的字典类型&#xff0c;哈希表把关键码key值通过哈希函数来和哈希表上的索引对应起来&#xff0c;之后输入key值…

操作系统——进程管理篇

操作系统——进程管理篇&#xff08;王道23年版&#xff09; 2.1_1_进程的概念、组成、特征 1.进程的概念 程序&#xff1a;是静态的&#xff0c;就是个存放在磁盘里的可执行文件&#xff0c;就是一系列的指令集合 进程&#xff1a;是动态的&#xff0c;是程序的一次执行过…

x-cmd pkg | aliyun - 阿里云 CLI

目录 简介首次用户技术特点竞品和相关作品进一步阅读 简介 aliyun 是基于阿里云 OpenAPI 的管理工具&#xff0c;用于与阿里云服务交互&#xff0c;管理阿里云资源。 首次用户 使用 x env use aliyun 即可自动下载并使用 在终端运行 eval "$(curl https://get.x-cmd.com…

Red Hat Enterprise Linux 9.3 安装图解

引导和开始安装 选择倒计时结束前&#xff0c;通过键盘上下键选择下图框选项&#xff0c;启动图形化安装过程。需要注意的不同主板默认或者自行配置的固件类型不一致&#xff0c;引导界面有所不同。也就是说使用UEFI和BIOS的安装引导界面是不同的&#xff0c;如图所示。若手动调…

MySQL缓冲池(Buffer Pool)深入解析:原理、组成及其在数据操作中的核心作用

在关系型数据库管理系统&#xff08;RDBMS&#xff09;中&#xff0c;性能优化一直是数据库管理员和开发者关注的焦点。作为最流行的开源RDBMS之一&#xff0c;MySQL提供了多种优化手段&#xff0c;其中InnoDB存储引擎的缓冲池&#xff08;Buffer Pool&#xff09;是最为关键的…

二、Flask学习之CSS

1.CSS在HTML中的三种表示方法 1.1 直接在标签中添加 <div><span style"color: orange">欢迎光临</span> </div>1.2 在头部添加 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"&g…

2024年MacBookPro电脑数据恢复软件EasyRecovery数据恢复

前天新入手了一台MacBook pro&#xff0c;第一次用Mac激动的心情简直难以言喻&#xff0c;可是随后这激动的心情顿时就烟消云散了&#xff0c;因为对Mac操作系统的不熟练&#xff0c;导致我删除了一份很重要的Word文件。MacBook pro如何恢复误删除的文件?就这件事我向朋友求助…

SpringMVC下半篇之整合ssm

4.ssm整合 4.1.创建表 CREATE TABLE account (id int(11) NOT NULL AUTO_INCREMENT,name varchar(20) DEFAULT NULL,money double DEFAULT NULL,PRIMARY KEY (id) ) ENGINEInnoDB DEFAULT CHARSETutf8;4.2.创建工程 4.3.pom.xml <?xml version"1.0" encoding&…

第十一站:运算符重载operate(+-*/)

目录 使用成员函数重载运算符 使用非成员函数重载运算符 使用重载函数运算整数 禁区: 赋值重载运算符 bug: 关系重载运算符>< 下标运算符重载 bug 输入输出运算符重载<<,>> 使用成员函数 使用友元函数 (更方便) 普通类型>类类型 类类型>普通类型…

OpenCV-Python(48):K均值聚类

目标 学习K值聚类的概念以及工作原理。K均值聚类的OpenCV实现 背景 下面用一个最常用的例子来给大家介绍K 值聚类。 话说有一个公司要生产一批新的T 恤。很明显他们要生产不同大小的T 恤来满足不同客客的要求。所以这个公司搜集了很多人的身高和体重信息&#xff0c;并把这些…

【C语言】编译和链接深度剖析

文章目录 &#x1f4dd;前言&#x1f320; 翻译环境和运行环境&#x1f309;翻译环境 &#x1f320;预处理&#xff08;预编译&#xff09;&#x1f309;编译 &#x1f320;词法分析&#x1f320;语法分析 &#x1f309;语义分析&#x1f320;汇编 &#x1f309; 链接&#x1f…

23号资源——电力系统程序集合已提供下载资源

23号资源&#xff1a;程序集合包含9个程序&#xff08;经典电力系统经济调度程序&#xff1b;2解决带储&#xff1b;3智能微电网PSO优化算法&#xff1b;微电网调度等等&#xff0c;见资源描述&#xff09;资源-CSDN文库https://download.csdn.net/download/LIANG674027206/887…

C++继承(万字详!!)

文章目录 继承的概念及定义继承的概念继承定义 基类和派生类对象赋值转换继承中的作用域派生类的默认成员函数继承与友元继承与静态成员复杂的菱形继承及菱形虚拟继承菱形继承菱形虚拟继承 继承的总结和反思笔试面试题 继承的概念及定义 继承的概念 继承(inheritance) 机制是面…

【Docker】实战多阶段构建 Laravel 镜像

作者主页&#xff1a; 正函数的个人主页 文章收录专栏&#xff1a; Docker 欢迎大家点赞 &#x1f44d; 收藏 ⭐ 加关注哦&#xff01; 本节适用于 PHP 开发者阅读。Laravel 基于 8.x 版本&#xff0c;各个版本的文件结构可能会有差异&#xff0c;请根据实际自行修改。 准备 新…

开源模型应用落地-qwen模型小试-入门篇(五)

一、前言 这是关于qwen模型入门的最后一篇文章。主要介绍如何使用魔搭的API在本地调用qwen模型。此外&#xff0c;通过阅读这一系列的文章&#xff0c;如果您真的亲自动手实践过&#xff0c;我相信您已经掌握了qwen模型的基本使用方法。 二、术语 2.1. ModelScope社区 打造下一…