求n的阶乘的算法框图_你不知道的阶乘与gamma函数

2023-11-03

你不知道的阶乘

阶乘对于有数学基础的人来说都不陌生,简单理解就是数的累乘。10的阶乘10!=10*9*8*7*6*5*4*3*2*1。但是我们有没有思考过,如分数的阶乘是如何运算的?有没有方法估算一个数的阶乘?

089b400c683a9a4585bc42ac6420027d.png

其实,1/2的阶乘等于π的平方根的一半,本文通过两种方式来求该等式。每一种都很巧妙,看了都能开拓数学思维。一种是利用极限与多项式,一种通过gamma函数。下面我们来证明这个等式。

首先,我们来证明沃利斯公式。

afa6f5aa4e93a20bffc311a3723f74f7.png

正弦函数sin x有无穷多个零点0,±π,±2π,±3π,···。一个多项式如果有若干个零点x1,x2,x3,x4 ···,xn,那么该多项式一定可以表示为

f91aad3c5ab80b0b3a250c72ca0090a2.png

可以将sin x大胆展开得

94300529534c6c887c8d08f4e7c7c690.png

将x=π/2代入上式可以得出

cf64f58731ac1d40253ef4e09c9e27fe.png

最后得到

6ba158161a36d0af2a329c948772474e.png

上式就是沃利斯公式。这种证明方法不是特别严格,沃利斯通过求圆弧下的面积同样证明了沃利斯公式,见参考链接《神奇的伽玛函数上》。

证明了沃利斯公式,接下来估算n!,得到n阶乘的一般形式,再求1/2的阶乘,欧拉采用无穷乘积给出了n!的一个插值公式。

e79124b841e9ab82715121b562447939.png

改成极限形式为

712e0471e01e50628c31a57ae6130e23.png

整理式子得

8bb092de3cf4241bda3d427a409ea7d9.png

则n的阶乘的该插值公式得到证明,可以看出该公式也适用于n是分数的情况,将n=1/2代入得

cc3831b86f39ece34605789f5d66a05e.png

可以惊奇的发现根号内的式子与沃利斯公式形式几乎一样,只少乘了最前面的因子2。将沃利斯公式代入上式得

688d561e87bcad76c9bb9e630c4967c1.png

这样我们就求出了1/2的阶乘的值。

阶乘与gamma函数

gamma函数的一般形式为

81a3c9ab1279da87cb27e4e4c8cf98a4.png

利用分部积分法,可以得出

c4f23718a672e82c6309b64c5ffe7e0a.png

61761de42968bd0c24cf4ea11054f1d9.png

所以可以得到

5ccb7f83c3a020a182cefa6dee98a219.png

那么gamma函数的一般形式是如何得出的呢?欧拉通过n的阶乘推导出了gamma函数的一般形式。由于得出了1/2的阶乘的结果中有π的存在,因此欧拉自然联想到阶乘的计算会与积分有关,提出了以下一般的积分形式:

99c1d179eb379c474292ebac5911896b.png

此处n为正整数,e为正实数,利用分部积分法得

03293e8b9235e793a6f6f1d32811c861.png

通过重复迭代上面的公式得

266bd4e8dde7244f31c37e56d2d8973b.png

则可以得到求n的阶乘的式子

724eea0d1fc751a767043a6beffb10b0.png

现在已经成功的将n的阶乘表示成积分的形式,但是由于n为整数,式子中的非积分部分无法推广分数的情况,因此要继续简化式子。

要让一个量从一个数学等式中消失,数学家惯用的做法就是让这个量取一个极端的值。这里让e趋于无穷。取e = f/g得

c5051a6714250118bad6e2745963bdf2.png

然后令f趋于1,g趋于0。左边显然趋于n的阶乘,右边还需要简化计算,令x等于t的h次方,其中h=g/(f+g),得

33d3df00271c9aaf254072cf84773179.png

当f趋于1,g趋于0时,h显然趋于0,利用洛必达法则,可以得到常用极限

c322a65bf2f460c14aba4f89453389ad.png

对两边同时取极限,见证奇迹的时刻

06420e77af2bd13620db07428d8b91bd.png

通过n的阶乘推导出了gamma函数的一般形式。

下面我们利用gamma函数来求1/2的阶乘。

由于gamma函数的阶乘形式只满足n为正整数的情况,因为我们要通过gamma函数的一般形式来算1/2的阶乘。我们将n=-1/2代入gamma函数一般表达式得

b871ce938d6b0395b27266457e943e60.png

仔细观察函数部分与某一种分布的概率密度函数神似,就是正态分布。正态分布的概率密度函数为

3a1a21098f5aa1ed6bc1d8121ee02bde.png

一般形式的正态分布概率密度函数参数较多,不便于我们观察,我们取正态分布的标准形式,即μ取0,σ取1,则正态分布的概率密度函数变成

5c15001163c624d3b66475e9e48d41b7.png

关于y轴对称,则大于0的部分积分为1/2,可以得到

01c76da189f1ea853b44ccfe76008dd4.png

令x = √(2t),代入上式得

ed0e4b008c0a7322e5d1932b9057dd6b.png

惊奇的发现积分部分包含我们求的

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

求n的阶乘的算法框图_你不知道的阶乘与gamma函数 的相关文章

随机推荐

  • 解决wordpress国外主题的fonts.gstatic.com无法访问

    使用360常用前端公共库 http libs useso com 这里缓存了Google前端公共库和免费字体库 编辑 wordpress wp includes script loader php 找到下面这一行 open sans fon
  • c++ 欧姆龙plctcp通讯_各大品牌PLC通讯形式你知道多少,今天汇总学习

    一 美系厂家Rockwell ABRockwell的PLC主要是包括 PLC2 PLC3 PLC5 SLC500 ControlLogix等型号 PLC2和PLC3是早期型号 现在用的比较多的小型PLC是SLC500 中型的一般是Contr
  • C#处理JSON格式数据

    欢迎您成为我的读者 希望这篇文章能给你一些帮助 前言 大家好 我是阿辉 这几年在编程行业要是说哪个方向的语言发展迅速 那必须是属于前端 前端新的框架层出不穷 写法也很多 但是有一种是不变的 就是当需要和后端进行数据传输交换的时候 一直在使用
  • JavaScript 跳格子游戏

    跳格子游戏棋盘 从起始点需要跳 n 个格子才能到结束点 每次可以跳 1 或 2 个格子 问共有多少种方法可以跳到结束点 输入 2 输出 2 解释 有两种方法可以爬到楼顶 1 1 格 1格 2 2 格 输入2 输出2 样例输入 3 样例输出
  • Java Nio(四)Java Nio实现HTTP请求

    HTTP相比于HTTPS来说要简单的多 完整代码在github上 https github com cxsummer net nio 我先说原理 在文章开始我先抛出一个问题 HTTP的GET和POS请求方法区别在哪呢 答案是除了名字没区别
  • 线程,任务,线程池的学习总结

    同步操作 synchornous operation 先完成其工作再返回调用者 异步操作 asynchornous operation 大部分工作是在返回给调用者之后才完成的 但是线程异步必须对资源进行协调 否则两个或者更多线程可能在同一时
  • vue 插件开发

    一见如故 vue插件就是一个install方法 或者有install方法的对象 在组件实例化或者挂载之前use 就行了 install方法的第一个参数就是app或者Vue 所以可以加一些全局的东西 作用 加全局组件 指令 全局方法等 示例代
  • 关于 Python 之 Matplotlib 的总结

    文章目录 通用 简单例子 中文显示问题 参数 颜色 color参数表 线型 linestyle ls 参数表 标记符号 marker参数表 位置 legend loc参数表 plt 常用命令 图形模板 柱形图 饼图 散点图 直方图 箱线图
  • 1、微信小程序-环境搭建、基本语法

    文章目录 前言 一 微信小程序简介 1 微信 程序 2 运行环境 3 环境准备 二 项目的目录结构 1 小程序项目结构与传统web相比 2 小程序基本目录结构 2 1 json 配置文件 2 1 模板语法 代码见demo01 2 2 wxs
  • 进程间通讯几种方式

    进程通信的目的 数据传输 一个进程需要将它的数据发送给另一个进程 发送的数据量在一个字节到几M字节之间 共享数据 多个进程想要操作共享数据 一个进程对共享数据 通知事 一个进程需要向另一个或一组进程发送消息 通知它 它们 发生了某种事件 如
  • (2)minikube玩转k8s集群之安装kubectl和minikube

    配套视频教程 1 Minikube介绍 简单说 创建k8s集群很麻烦 minikube可以让我们快速搭建一个k8s集群用于学习 Minikube 是一种可以让您在本地轻松运行 Kubernetes 的工具 Minikube 在笔记本电脑上的
  • 从文本、图像到音视频,AIGC技术将如何重构我们的数字世界?

    引言 1950 年 艾伦 图灵提出著名的 图灵测试 给出判定机器是否具有智能的试验方法 16 年后 世界上第一款可人机对话的机器人 Eliza 问世 这是 AI 技术最早期的萌芽阶段 但由于当时的科技水平限制 AIGC 仅限于小范围实验 A
  • Git clone下载文件和依赖项 in cmd

    从github复制好你要下载的文件地址和依赖项 git clone https github com kibamin FuzzyConstraintClustering git pip install r requirements txt
  • LeetCode 56. 合并区间

    题目链接 点击这里 题意 给出一个区间的集合 请合并所有重叠的区间 思路 AC代码 class Solution public vector
  • 高德地图开发(二、地图控件)

    高德地图开发 二 地图插件加载 一 加载单个插件 二 加载多个插件 有同步 异步等方法 我用得都是异步 图层类型切换 MapType 与3D罗盘控制 AMap ControlBar 会重叠 需要另写样式让它们分开 插件类型链接 https
  • TensorFlow bug(六)——Dimensions of inputs should match: shape[0] = [1,600,750,3] vs. shape[2] = [1,600

    问题描述 在用R FCN目标检测API训练我自己的数据时 我对原代码做了些改动 原来的rfcn resnet101 coco config文件中 batch size的值为1即一次处理1张图片 我改成了别的数 2 8 16 32 都会出现如
  • Unity 3D物体、UI同屏||3D物体在UI界面显示

    先来猜一下这两个石头人 哪一个是UI 哪一个是3d物体 答案是中间那一个 这种UI显示3D物体适用很多场景 比如说商店展示模型展示 例子特效 2 5d游戏 实现起来很简单 接下来我们实现一下 实现步骤 1 新建一个相机 对准角色 2 UI新
  • usb设备拓扑关系

    usb设备拓扑关系 1 简介 2 usbfs和debugfs拓扑 2 1挂载方式 2 2拓扑关系信息说明 2 2 1usb总线上的设备信息 2 2 2总线上特定设备的详细信息 2 3debugfs中的设备拓扑信息 T Topology B
  • react之旅(八)React生命周期

    一 react 16前的生命周期 1 1 constructor constructor props context 如果想 在组件其他地方是可以直接接收的 使用props或context 则需要以参数形式传入 只要组件存在construc
  • 求n的阶乘的算法框图_你不知道的阶乘与gamma函数

    你不知道的阶乘 阶乘对于有数学基础的人来说都不陌生 简单理解就是数的累乘 10的阶乘10 10 9 8 7 6 5 4 3 2 1 但是我们有没有思考过 如分数的阶乘是如何运算的 有没有方法估算一个数的阶乘 其实 1 2的阶乘等于 的平方根
Powered by Hwhale