Wallis公式&Stirling公式&Gamma函数

您所在的位置:网站首页 斯特林公式是什么 Wallis公式&Stirling公式&Gamma函数

Wallis公式&Stirling公式&Gamma函数

2024-07-09 21:30| 来源: 网络整理| 查看: 265

Wallis公式

(!!是双阶乘,不超过这个整数且具有相同奇偶的正整数相乘,比如5!!=1×3×5, 6!!=2×4×6) 在这里插入图片描述 在这里插入图片描述

在这里插入图片描述

利用Wallis公式推导Stirling公式

斯特林公式是一条用来取n阶乘近似值的数学公式。一般来说,当n很大的时候,n阶乘的计算量十分大,所以斯特灵公式十分好用。从图中可以看出,即使在n很小的时候,斯特灵公式的取值已经十分准确。 在这里插入图片描述

斯特林公式如下 在这里插入图片描述 接下来利用Wallis公式来推导斯特林公式

借助函数 f(x) = ln x 的图像面积,通常有三种求法,分别是积分法,内接梯形分割法,外切梯形分割法。实际上最准确的是第一种,后面两种都有一定的误差

在这里插入图片描述

如果要计算n的阶乘后得到的数字为几位数,则我们可以知道其位数等于lg n! + 1

则: ln(n!) = ln 1 + ln 2 + … + ln n.

但是当n很大的时候,我们可以通过斯特林公式进行优化:(即Stirling公式)

(e = 2.718)

斯特林公式可以用来估算某数的大小,结合lg可以估算某数的位数,或者可以估算某数的阶乘是另一个数的倍数。

再来证明log(n!) 与 nlog n是等价无穷大(n -> ∞): 在这里插入图片描述

题目地址

http://acm.hdu.edu.cn/showproblem.php?pid=1018

题目描述

在这里插入图片描述

思路

当n很小时,直接取 lg n! 利用Stirling公式计算n!结果的位数时,则是两边取对数

故n!的位数为:

代码 语言支持:C++

C++ Code:

#include #include #include using namespace std; const double pi = acos(-1.0), e = exp(1.0); int main(){ int n, T; scanf("%d", &T); while (T--){ scanf("%d", &n); double temp = 0; if (n


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3