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

公式为:   

从图中看出,对于足够大的整数n,这两个数互为近似值。更加精确地:

       或者        

这个公式,以及误差的估计,可以推导如下。我们不直接估计n!,而是考虑它的自然对数:

   

按一般方法计算N的阶乘,其时间复杂度为O(N):    N!= 1 * 2 * 3 * 4 * 5 * ............ * N;

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

则: 

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

(e = 2.718)

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

例题:  http://acm.hdu.edu.cn/showproblem.php?pid=1018
题目给出的N的范围是: 1<= N <= 107  

用普通方法肯定算不出N的阶乘后的出的数字位数,但运用斯特林公式则很好解决.


Stirling 公式

即:

Stirling公式的意义在于:当n足够大时,n!计算起来十分困难,虽然有很多关于n!的等式,但并不能很好地对阶乘结果进行估计,尤其是n很大之后,误差将会非常大。但利用Stirling公式可以将阶乘转化成幂函数,使得阶乘的结果得以更好的估计。而且n越大,估计得越准确。

利用Stirling公式求解n!的位数:易知整数n的位数为[lgn]+1。利用Stirling公式计算n!结果的位数时,可以两边取对数,得:

故n!的位数为:

斯特林公式 ——Stirling公式(取N阶乘近似值)相关推荐

  1. HDU 1018.Big Number-Stirling(斯特林)公式 取N阶乘近似值

    最近一堆题目要补,一直咸鱼,补了一堆水题都没必要写题解.备忘一下这个公式. Stirling公式的意义在于:当n足够大时,n!计算起来十分困难,虽然有很多关于n!的等式,但并不能很好地对阶乘结果进行估 ...

  2. 【数论】斯特林公式 ——Stirling公式(取N阶乘近似值)

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

  3. 斯特林公式 ——Stirling公式(取N阶乘近似值)(转)

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

  4. 斯特灵公式求阶乘c语言,斯特林公式 ——Stirling公式(取N阶乘近似值)

    基于UDP协议的socket编程示例 客户端 import java.io.IOException; import java.net.DatagramPacket; import java.net.D ...

  5. Wallis公式Stirling公式Gamma函数

    Wallis公式 (!!是双阶乘,不超过这个整数且具有相同奇偶的正整数相乘,比如5!!=1×3×5, 6!!=2×4×6) 利用Wallis公式推导Stirling公式 斯特林公式是一条用来取n阶乘近 ...

  6. Stirling公式(pku1423)

    Stirling 公式 即: Stirling公式的意义在于:当n足够大时,n!计算起来十分困难,虽然有很多关于n!的等式,但并不能很好地对阶乘结果进行估计,尤其是n很大之后,误差将会非常大.但利用S ...

  7. Stirling公式 求n! 的位数

    Stirling 公式 即: Stirling公式的意义在于:当n足够大时,n!计算起来十分困难,虽然有很多关于n!的等式,但并不能很好地对阶乘结果进行估计,尤其是n很大之后,误差将会非常大.但利用S ...

  8. poj 1423 stirling公式(阶乘的位数)

    题意:给定一个数(小于10^7),求这个数阶乘的位数. 思路:首先,求一个数n的位数可以用log10(n)向上取整来得到(10的整数次幂要特殊判断).所以所求由log10(1)+log10(2)+lo ...

  9. Stirling公式(斯特林公式)

    普通计算时: N!=1*2*3*4*5*............*N: 如果要计算N!后得到的数字,则我们可以知道其等于lgN!+1 lgN!=lg1+lg2+lg3+lg4+lg5+........ ...

  10. Stirling公式

    Stirling 公式 Stirling公式 1.阶乘 n!=n(n−1)(n−2)⋯×3×2×1(n≥1)n! = n(n-1)(n-2)\cdots\times3\times2\times1\qu ...

最新文章

  1. 升余弦滤波器与根升余弦滤波器
  2. 用上这个Python的Docker正式版镜像,你也能成为容器高玩
  3. 每个网站SEO优化人员都要熟知的三大图片优化技巧
  4. android socket_附详尽答案,新版精选Android中高级面试题二
  5. java 会话跟踪技术_JavaEE基础(04):会话跟踪技术,Session和Cookie详解
  6. apollo 配置中心_Spring Cloud 系列之 Apollo 配置中心(三)
  7. [转]关于Linux下时间片分配给进程还是线程的问题
  8. 接触网作业车司机许新峰的春运
  9. 2018-4-17论文《狼群算法的研究与应用》笔记1 智能算法简介;狼群算法国内外研究现状以及参看文献
  10. PE启动盘制作,电脑PE工具制作教程(可能是最详细的制作方法)小白推荐
  11. 开发中使用第三方工具/服务
  12. centos安装Docker与使用构建业务镜像挂载卷harbor仓库的高可用及网络模式和资源限制介绍...
  13. python编程游戏-9个Python编程小游戏,有趣又好玩,简直太棒了
  14. Linux下conda环境配置及第三方库安装
  15. 2022-07-12 读书笔记:《写给所有人的极简统计学》
  16. Linux如何安装mysql数据库
  17. 如何创建低成本沙箱环境?推荐你使用API仿真!
  18. Deepin V20 安装 佳能 Canon LBP 2900打印机
  19. 混沌神经网络(Chaos Neural Network)
  20. 多功能存储器芯片的测试系统设计方案

热门文章

  1. 自然语言处理NLP中的N-gram模型
  2. [SpriteKit] 制作瓦片地图小游戏
  3. 大学生涯(大四篇)毕业事件指南
  4. 多元相关性分析_多元统计分析与R语言建模之相关分析与回归分析
  5. 联合密度函数求期望_已知概率密度函数怎么求它的数学期望和方差
  6. [渝粤教育] 西南科技大学 中国古代文学〔2〕 在线考试复习资料
  7. 关于总线、现场总线、RS-485和modbus之间的关系
  8. 你知道abrt-hook-ccpp吗?
  9. 人脸识别面试常见题目总结
  10. 华三H3C交换机路由器如何配置dhcp中继(dhcp relay)