python概率分析:为什么葫芦娃救爷爷是一个一个地救成功率最高?

关键词: Python 、葫芦娃 、 概率计算 、 数学 、 建模

前言

过完年了返工后想起了小孩子们爱看的葫芦娃救爷爷的动画片,葫芦娃为什么是一个一个前去救爷爷,为什么不等着七个一起去救爷爷。带着这个疑问,我决定今天用数学的角度建模计算下哪种方式救爷爷成功率最高?

情节回顾

image.png   故事开始时,爷爷被蛇精抓走,大娃(力大无穷)决定去救爷爷,但由于他轻敌,被蛇精骗入陷阱。接着,二娃(千里眼顺风耳)、三娃(铜头铁臂)、四娃(喷火)、五娃(喷水)、六娃(隐身)都分别去救爷爷,但都因为各自的弱点而失败。但最终七个葫芦娃在一起联手击败了蛇精。

建模

这里我们进行精简情节回顾的逻辑并给出关键信息:

  1. 七个葫芦娃联手是100%击败蛇精;
  2. 单个葫芦娃击败蛇精的概率是1/7;
  3. 爷爷在第6天营救失败后必死;
  4. 爷爷在每天死的概率是1/6;

这里我们可以得到葫芦娃营救爷爷的成功的条件为:爷爷没死 + 葫芦娃击败蛇精 。在这里可以设置一个长度为6的数组(因为第七天七个葫芦娃会联手)对葫芦娃进行数据组合计算营救爷爷成功的概率,经过计算共有132种营救方式,其中成功概率最高的救是一个一个前去营救爷爷,在数组中表示为:[1,1,1,1,1,1] ;其概率为0.3965694566039661

python实现

def build_strategy(idx, sum_val, cur):global resif idx == N and sum_val == N:res.append(cur.copy())returnif idx >= N:returnfor i in range(idx + 1, -1, -1):if sum_val + i <= idx + 1:tmp = cur.copy()tmp.append(i)build_strategy(idx + 1, sum_val + i, tmp)def all_strategies(n):global N, resN = nres = []build_strategy(0, 0, [])return resdef calc_probability(strategy):prob = 0.0try_cnt = 0succ_prob = 1.0 / (N + 1)for i in range(len(strategy)):live_grandpa_prob = (N - i) * 1.0 / Nsave_prob = strategy[i] * succ_probprob += (1 - succ_prob) ** try_cnt * live_grandpa_prob * save_probtry_cnt += strategy[i]return probN = 6
Strategy_list = []
probability_list = []result = all_strategies(N)  # Get the list of strategies using the all_strategies function
for strategy in result:probability = calc_probability(strategy)Strategy_list.append(strategy)probability_list.append(probability)print(f"Strategy: {strategy}, Probability: {probability}")max_probability = max(probability_list)
print(max_probability)

如果你对Python感兴趣,想要学习python,这里给大家分享一份Python全套学习资料,都是我自己学习时整理的,希望可以帮到你,一起加油!

😝有需要的小伙伴,可以V扫描下方二维码免费领取🆓

1️⃣零基础入门

① 学习路线

对于从来没有接触过Python的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

② 路线对应学习视频

还有很多适合0基础入门的学习视频,有了这些视频,轻轻松松上手Python~
在这里插入图片描述

③练习题

每节视频课后,都有对应的练习题哦,可以检验学习成果哈哈!
在这里插入图片描述

2️⃣国内外Python书籍、文档

① 文档和书籍资料

在这里插入图片描述

3️⃣Python工具包+项目源码合集

①Python工具包

学习Python常用的开发软件都在这里了!每个都有详细的安装教程,保证你可以安装成功哦!
在这里插入图片描述

②Python实战案例

光学理论是没用的,要学会跟着一起敲代码,动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。100+实战案例源码等你来拿!
在这里插入图片描述

③Python小游戏源码

如果觉得上面的实战案例有点枯燥,可以试试自己用Python编写小游戏,让你的学习过程中增添一点趣味!
在这里插入图片描述

4️⃣Python面试题

我们学会了Python之后,有了技能就可以出去找工作啦!下面这些面试题是都来自阿里、腾讯、字节等一线互联网大厂,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
在这里插入图片描述
在这里插入图片描述

上述所有资料 ⚡️ ,朋友们如果有需要的,可以扫描下方👇👇👇二维码免费领取🆓

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux开发工具使用

一、Linux软件包管理器 yum 软件包和软件包管理器, 就好比 "App" 和 "应用商店" &#xff0c;我们现在要安装的yum就是相当于在我们的Linux终端安装一个"应用商店"。 但使用yum时&#xff0c;我们一定要保证主机(虚拟机)网络畅通!这点也非常好理…

分类问题经典算法 | 二分类问题 | Logistic回归:公式推导

目录 一. Logistic回归的思想1. 分类任务思想2. Logistic回归思想 二. Logistic回归算法&#xff1a;线性可分推导 一. Logistic回归的思想 1. 分类任务思想 分类问题通常可以分为二分类&#xff0c;多分类任务&#xff1b;而对于不同的分类任务&#xff0c;训练的主要目标是…

001-CSS-水平垂直居中布局

水平垂直居中布局 方案一&#xff1a;弹性盒子布局方案二&#xff1a;绝对定位 transform方案三&#xff1a;margin 绝对定位&#xff0c;四个方向为零方案四&#xff1a;绝对定位 margin方案五&#xff1a;绝对定位 calc 方案一&#xff1a;弹性盒子布局 &#x1f4a1; T…

【Python 常用脚本及命令系列 6 -- python 读取C文件中数组中的数据】

文章目录 python 读取C文件中数组中的数据 python 读取C文件中数组中的数据 例如可以使用 python 将 test.c 文件中数组&#xff1a; unsigned short image[] { 0x125, 0x123&#xff0c; 0x88, 0x99 }中的所有数据生成到一个列表 list_num 中&#xff0c;并将其打印出来。 …

RabbitMQ(三):AMQP协议

目录 1 AMQP协议1.1 AMQP协议介绍1、AMQP是什么2、消息代理中间件的职责 1.2 AMQP 0-9-1模型1、AMQP的工作过程2、交换器和交换器类型3、队列队列属性队列名称队列持久化 1.3 几个概念1、绑定2、消费者3、消息确认4、预取消息5、消息属性和有效载荷&#xff08;消息主体&#x…

HTML5:七天学会基础动画网页7

CSS3高级特效 2D转换方法 移动:translate() 旋转:rotate() 缩放:scale() 倾斜:skew() 属性:transform 作用:对元素进行移动,旋转,缩放,倾斜。 2D移动 设定元素从当前位置移动到给定位置(x,y) 方法 说明 translate(x,y) 2D转换 沿X轴和Y轴移…

2024 极术通讯-云+大模型的2024格局

导读&#xff1a;极术社区推出极术通讯&#xff0c;引入行业媒体和技术社区、咨询机构优质内容&#xff0c;定期分享产业技术趋势与市场应用热点。 芯方向 FunASR 语音大模型在 Arm Neoverse 平台上的优化实践 FunASR 是阿里巴巴达摩院开发的开源的基于 Paraformer 的大模型语…

String字符串的常见方法总结

一、获取字符串的长度:str.length() String str "Hello World&#xff01;";int strLength str.length(); System.out.println(strLength);//输出&#xff1a;12 二、字符串的比较:str.equals() //比较两个字符串是否相等String str1 "Chinese";Stri…

概率基础——极大似然估计

概率基础——极大似然估计 引言 极大似然估计&#xff08;Maximum Likelihood Estimation&#xff0c;简称MLE&#xff09;是统计学中最常用的参数估计方法之一&#xff0c;它通过最大化样本的似然函数来估计参数值&#xff0c;以使得样本出现的概率最大化。极大似然估计在各…

学习JAVA的第十三天(基础)

目录 API之Arrays 将数组变成字符串 二分查找法查找元素 拷贝数组 填充数组 排序数组 Lambda表达式 集合的进阶 单列集合 体系结构 Collection API之Arrays 操作数组的工具类 将数组变成字符串 //将数组变成字符串char[] arr {a,b,c,d,e};System.out.println(Arra…

Installing Git (安装 Git)

Installing Git [安装 Git] 1. Installing Git1.1. Description1.2. Installing on Linux (在 Linux 上安装)1.3. Installing on macOS (在 macOS 上安装)1.4. Installing on Windows (在 Windows 上安装)1.5. Installing from Source (从源代码安装) 2. sudo apt-get install …

Python常用验证码标注和识别(需求分析和实现思路)

目录 一、需求分析 图像验证码识别&#xff1a; 文本验证码识别&#xff1a; 二、实现思路 三、案例与代码 四、总结与展望 在当今的数字时代&#xff0c;验证码&#xff08;CAPTCHA&#xff09;作为一种安全机制&#xff0c;广泛应用于网站和应用程序中&#xff0c;以防…

Method Not Allowed (GET): /user/logout/

在使用 DJango 框架使用框架默认的【登出】视图时&#xff0c;发现报错如下&#xff1a; Method Not Allowed (GET): /user/logout/ Method Not Allowed: /user/logout/ 退出部分的代码原先如下&#xff08;登出部分见第6行&#xff09;&#xff1a; <p><a href"…

PySide6实现socket通信程序

目录 一:实现思路 二:实现代码 三:完整代码和界面 一:实现思路 在PySide6中,服务端可以使用QTcpServer类来实现一个Socket服务器端,这个类可以便捷地创建TCP服务器。在客户端可以使用QTcpSocket实现Socket通信,并使用QTextEdit来显示消息。

MySQL 8.0.35 企业版安装和启用TDE插件keyring_encrypted_file

本文主要记录MySQL企业版TDE插件keyring_encrypted_file的安装和使用。 TDE说明 TDE( Transparent Data Encryption,透明数据加密) 指的是无需修改应用就可以实现数据的加解密&#xff0c;在数据写磁盘的时候加密&#xff0c;读的时候自动解密。加密后其他人即使能够访问数据库…

Unity 摄像机的深度切换与摄像机画面投影

摄像机可选&#xff1a;透视、正交 正交类似投影&#xff0c;1比1 透视类似人眼&#xff0c;近大远小 摄像机投影 在项目中新建&#xff1a;渲染器纹理 将新建纹理拖动到相机的目标纹理中 新建一个平面&#xff0c;将新建材质组件放到平面中即可。 相机深度切换 使用代…

93. 通用防重幂等设计

文章目录 一、防重与幂等的区别二、幂等性的应用场景三、幂等性与防重关系四、处理流程 一、防重与幂等的区别 防重与幂等是在 Web 应用程序和分布式系统中重要而又非常常见的问题。 防重 防重是指在多次提交同样的请求过程中&#xff0c;系统会检测和消除重复的数据&#xf…

每天一个数据分析题(一百八十三)

以下哪一项不是逻辑回归模型的特点&#xff1f; A. 因变量通常为二分类型变量 B. 自变量可以是分类型或连续型变量 C. 适用于处理连续自变量与二分类型因变量之间的关系 D. 通过logit转换&#xff0c;输出结果为实数域内的数值 题目来源于CDA模拟题库 点击此处获取答案

【动态规划】45. 跳跃游戏 II

45. 跳跃游戏 II 解题思路 int[] memo;&#xff1a;定义一个数组memo&#xff0c;用来作为备忘录&#xff0c;存储从每个索引位置跳到数组末尾所需的最小跳跃次数。 Arrays.fill(memo, n);&#xff1a;在开始计算之前&#xff0c;先将memo数组的所有元素初始化为n。这里的n是…

C语言中的宏函数与宏定义

C语言中的宏函数与宏定义 从开始写C语言到生成执行程序的流程大致如下&#xff1a; 预处理工作是系统引用预处理程序对源程序中的预处理部分做处理&#xff0c;而预处理部分是指以“#”开头的、放在函数之外的、一般放在源文件的前面的预处理命令&#xff0c;如&#xff1a;包…