数模原理精解【3】

文章目录

  • 随机事件与概率
    • 基础
    • 理论
      • Julia中计算概率
        • 1. 简单的概率计算
        • 2. 使用统计分布
        • 3. 蒙特卡洛模拟
      • 全排列
      • Julia计算阶乘
  • 参考文献

随机事件与概率

基础

  • 某本地电话号码本中有n个电话,每个电话带区号一起12个数字,问从这n个电话中取出后3位不相同的号码的概率是多少?
    1. 后 3 位 电 话 号 码 均 为 0 - 9 中 的 一 个 数 字 , 共 有 以 下 种 可 重 复 排 列 ( 有 放 回 的 ) 。 1 0 3 2. 因 为 后 3 位 不 相 同 , 所 以 是 一 种 无 放 回 排 列 , 以 下 种 排 列 。 P 10 3 3. P 10 3 1 0 3 = 0.72 1.后3位电话号码均为0-9中的一个数字,共有以下种可重复排列(有放回的)。 \\10^3 \\2.因为后3位不相同,所以是一种无放回排列,以下种排列。 \\P_{10}^3 \\3.\frac {P_{10}^3} {10^3}=0.72 1.3091032.3,P1033.103P103=0.72
julia> (factorial(10)/ factorial(7))/(10^3)

0.72

理论

下面内容来自文心一言的自动生成。

Julia中计算概率

在Julia中计算概率通常依赖于你想要解决的具体问题。概率的计算可以涉及简单的数学运算、使用统计分布,或者需要复杂的模拟。以下是一些基本的示例,展示如何在Julia中处理不同类型的概率计算。

1. 简单的概率计算

如果你只是需要计算基于给定概率的简单事件的概率,那么可以直接使用基本的数学运算。

# 假设有两个事件A和B,它们独立发生,P(A) = 0.4, P(B) = 0.5
P_A = 0.4
P_B = 0.5# 计算A和B同时发生的概率 P(A ∩ B) = P(A) * P(B)
P_A_and_B = P_A * P_B
println("P(A and B) = ", P_A_and_B)# 计算A或B发生的概率 P(A ∪ B) = P(A) + P(B) - P(A ∩ B)
P_A_or_B = P_A + P_B - P_A_and_B
println("P(A or B) = ", P_A_or_B)
2. 使用统计分布

Julia的Statistics包(或更专门的Distributions包)提供了多种统计分布的实现,你可以使用这些分布来计算概率。

首先,你需要安装Distributions包(如果你还没有安装的话):

julia> using Pkg
julia> Pkg.add("Distributions")

然后,你可以使用这些分布来计算概率:

using Distributions# 定义一个正态分布
normal_dist = Normal(0, 1)  # 均值为0,标准差为1# 计算x=1时的概率密度
pdf_value = pdf(normal_dist, 1)
println("PDF at x=1: ", pdf_value)# 计算x在-1到1之间的累积分布函数(CDF)值
cdf_value = cdf(normal_dist, 1) - cdf(normal_dist, -1)
println("CDF from -1 to 1: ", cdf_value)
3. 蒙特卡洛模拟

对于更复杂的概率问题,特别是那些难以直接通过解析方法求解的问题,蒙特卡洛模拟是一个很好的选择。

# 假设我们要估计π的值,使用蒙特卡洛方法
n_samples = 10000
inside_circle = 0for i = 1:n_samplesx = 2 * rand() - 1  # 生成-1到1之间的随机数y = 2 * rand() - 1if x^2 + y^2 <= 1inside_circle += 1end
end# π的估计值
pi_estimate = 4 * inside_circle / n_samples
println("Estimated π: ", pi_estimate)

以上只是概率计算在Julia中的几个示例。根据你的具体需求,你可能需要调整这些示例或探索更多的工具和库。

全排列

在Julia中,可以使用permutations函数来求解一个集合的所有排列。这个函数定义在Combinatorics.jl包中,因此你需要首先添加这个包。

首先,在REPL中运行下面的命令来添加Combinatorics.jl包:

using Pkg
Pkg.add("Combinatorics")

之后,你可以使用permutations函数来获取一个集合的所有排列:

using Combinatorics# 假设我们要获取1到3的所有排列
perms = permutations([1, 2, 3])## 打印排列结果
for p in permsprintln(p)
end

这段代码将会打印出1到3的所有排列。如果你需要排列的集合较大,请注意这可能会创建一个非常大的数组,因此请确保你的机器有足够的内存来处理这个结果。

Julia计算阶乘

在Julia中,你可以使用内置的factorial函数来计算阶乘。以下是一个计算阶乘的例子:

# 计算阶乘的函数
function factorial_digit(n)if n < 0error("输入必须为非负数")elseif n == 0return 1elsereturn factorial(n)end
end# 示例
n = 5
result = factorial_digit(n)
println("阶乘结果: ", result)

在这个例子中,我们定义了一个名为factorial_digit的函数,它接受一个整数n作为参数,并返回n的阶乘。如果n是0或负数,则会抛出错误。如果n是正数,则使用内置的factorial函数来计算它的阶乘。然后,我们计算5的阶乘并打印结果。

参考文献

  1. 文心一言
    2.《数学》中国财政经济出版社 2010版

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

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

相关文章

批量修改windows目录名称,删除固定字符串后缀

PS F:\学习\软考-中级-信息安全工程师\05 文老师> ls目录: F:\学习\软考-中级-信息安全工程师\05 文老师Mode LastWriteTime Length Name ---- ------------- ------ ---- -a---- 2024/7/29 10:10 3300…

【arxiv 2024】Latte: Latent Diffusion Transformer for Video Generation

【arxiv 2024】Latte: Latent Diffusion Transformer for Video Generation 一、前言Abstract1 Introduction2 Related Work3 Methodology3.1 Preliminary of Latent Diffusion Models3.2 The model variants of Latte3.3 The empirical analysis of Latte3.3.1 Latent video c…

你知道这些鼎鼎大名的Java底层核心公司吗

在讨论Java虚拟机——JVM的时候&#xff0c;有几个知名的&#xff0c;不得不提到的JVM的产品和公司。 一、Oracle HotSpot&#xff1a;这是由Sun公司开发的虚拟机。它由最初的Classic VM开始&#xff0c;到推出崭露头角的Exact VM的虚拟机&#xff0c;是现代化高性能虚拟机的最…

【elementui】记录手动控制el-table的排序图标高亮

当前elementui版本&#xff1a;2.8.2 vue2 场景&#xff1a;点击列头排序&#xff0c;入参传了排序相关的参数&#xff0c;但是列表的相关列排序图标没有高亮&#xff0c;其实多半是表格在不知道的地方自己又渲染了一遍&#xff0c;把排序高亮给弄没了&#xff0c;所以需要手…

C++设计模式--单例模式

单例模式的学习笔记 参见链接1&#xff0c;链接2 #include <iostream> #include <mutex>using namespace std;/*懒汉模式&#xff1a;只有在用到了才实例化对象并返回&#xff08;调用了对外的接口才会实例对象&#xff09;*/ /*构造函数私有化&#xff0c;只对外…

Linux实现双网卡绑定

1、介绍 linux 主机安装双网卡&#xff0c;共享一个IP地址&#xff0c;对外提供访问&#xff0c;实际同样连接两条物理线路到交换机实现平时双网卡同时工作&#xff0c;分流网络压力&#xff0c;同时提供冗余备份&#xff0c;监控&#xff0c;防止物理线路的单点故障。 配置双…

C语言 ——— 函数指针数组的讲解及其用法

目录 前言 函数指针数组的定义 函数指针数组的使用 前言 数组是存放一组相同类型数据的存储空间 关于指针数组的知识请见&#xff1a;C语言 ——— 指针数组 & 指针数组模拟二维整型数组-CSDN博客 那么要将多个函数的地址存储到数组中&#xff0c;这个数组该如何定义…

C++中的依赖注入

目录 1.概述 2.构造函数注入 3.setter方法注入 4.接口注入 5.依赖注入框架 6.依赖注入容器 7.依赖注入框架的工作原理 8.依赖注入的优势 9.总结 1.概述 依赖注入是一种设计模式&#xff0c;它允许我们在不直接创建对象的情况下为对象提供其依赖项&#xff1b;它通过将…

云仓技术带来的物流变革影响

1、实时可视性&#xff1a; 云仓技术使物流公司能够实时跟踪和监控货物在供应链中的位置和状态。这种实时可视性提供了更好的货物追踪和管理能力&#xff0c;同时也提高了客户服务的质量。 ———————————————————— 2、仓储优化&#xff1a; 云仓技术可以…

从0开始搭建vue + flask 旅游景点数据分析系统(四):编写前端首页【数据驾驶舱】

本期我们编写数据驾驶舱页面(Dashboard)这个页面。主要任务是引入echarts 组件编写数据驾驶舱页面。 视频教程后续会更新在我的B站&#xff1a;https://space.bilibili.com/1583208775?spm_id_from666.25.0.0 推荐从教程第一集开始从零开始学习&#xff1a;https://blog.csdn…

OpenCV中的圆形标靶检测——findCirclesGrid()(四)

这里把上一篇文章中分析的函数源码及其注释张贴出来,具体如下。 void CirclesGridClusterFinder::hierarchicalClustering(const std::vector<Point2f> &points, const Size &patternSz, std::vector<Point2f> &patternPoints) { #ifdef HAVE_TEGRA_…

实验室责任人员管理保障实训系统安全

在智慧校园的实训管理生态中&#xff0c;实验室责任人员的角色犹如精密机器中的关键齿轮&#xff0c;他们不仅是实验室安全与高效运转的守护者&#xff0c;更是实训教学质量的直接塑造者。这一角色的重要性&#xff0c;在智慧校园的数字化转型中得到了前所未有的凸显&#xff0…

将Git远程仓库中的项目迁移到另一个远程库, So easy

需求描述 将一个Git远程仓库中的项目迁移到另一个远程库, 这里的示例是将原来控管在 Bitbucket的项目迁移到GitHub。 当然,能想到的最简单的方式就是在GitHub创建一个新项目,然后把原来的文件 add, commit , push 。这样的话虽然代码是控管了,但是之前提交的历史记录并没有…

vue2,vue3项目无限滚动组件,支持滑动

参数说明 items&#xff1a;项目数组 stepTime&#xff1a;每一步滚动的时间间隔&#xff08;毫秒&#xff09; stepHeight&#xff1a;垂直滚动时每一步的高度 stepWidth:水平滚动时每一步的宽度 threshold&#xff1a;判断是否需要滚动的项目数量阈值 containerHeight&#x…

Linux系统配置STM32的开发环境(代码编辑,编译,下载调试)

常见的stm32开发都是直接使用keil-MDK工具的&#xff0c;这是个集成开发环境&#xff0c;包含了代码编辑&#xff0c;编译&#xff0c;下载&#xff0c;调试&#xff0c;等功能&#xff0c;而且keil还是个图形化操作工具&#xff0c;直接可以点击图标案件就可以实现编译下载啥的…

Tableau入门|数据可视化与仪表盘搭建

原视频链接&#xff08;up:戴戴戴师兄&#xff09;&#xff0c;文章为笔者的自学笔记&#xff0c;用于复习回顾&#xff0c;原视频下方有原up整理的笔记&#xff0c;更加直观便捷。因为视频中间涉及的细节较多&#xff0c;建议一边操作&#xff0c;一边学习。 整体介绍 可视化…

set,map(java)

前言&#xff1a;要了解set和map&#xff0c;首先需要对搜索树和哈希有一定的了解&#xff0c;才能进一步深入的了解set和map。 1.搜索树 &#xff08;1&#xff09;性质&#xff1a; 若它的左子树不为空&#xff0c;则左子树上所有节点值都小于根节点的值。 若它的右子树不…

【单机锁】实现原理

文章目录 1.互斥锁 sync.Mutex 的实现原理&#xff1b;1.1获取策略有如下两种&#xff1a;1.2sync.Mutex的方案1.2.1具体方案如下&#xff1a;1.2.2转换的条件&#xff1a;1.2.3运行的两种模式&#xff1a;1.2.4两种模式的转换条件1.2.5唤醒标识&#xff1a; 1.3源码走读 2. sy…

Android 异步编程:RxJava的基本使用以及搭配Retrofit一起使用

目录 Rxjava是什么如何使用Rxjava的知识点使用场景 一、是什么&#xff1f; RxJava是一个基于响应式编程&#xff08;Reactive Programming&#xff09;和观察者模式&#xff08;Observer pattern&#xff09;的Java库。它提供了一种异步、基于事件流的编程方式&#xff0c;…

猫头虎分享:PyTorch异常ModuleNotFoundError: No module named ‘torch’解决方案

&#x1f42f; 猫头虎分享&#xff1a;PyTorch异常ModuleNotFoundError: No module named ‘torch’解决方案 &#x1f4bb; 摘要 在本篇博客中&#xff0c;我们将深入探讨如何解决PyTorch中常见的“ModuleNotFoundError: No module named ‘torch’”错误。通过详细的步骤指…