阶乘
计算
计算n!时,当n不太大时,普通的科学计算机都可以计算,能够处理不超过10100{\displaystyle 10^{100}}数值的计算机可以计算至69!。
当n很大时,可以用斯特林公式估计: n!≈ ≈ -->2π π -->n(ne)n{\displaystyle n!\approx {\sqrt {2\pi n}}\;\left({\frac {n}{e}}\right)^{n}} 更精确的估计是: n!=2π π -->n(ne)neλ λ -->n{\displaystyle n!={\sqrt {2\pi n}}\;\left({\frac {n}{e}}\right)^{n}e^{\lambda _{n}}} 其中 112n+1n<112n{\displaystyle {\frac {1}{12n+1}}
阶乘高精度计算编程
#include#includeusingnamespacestd;intmain(void)/*高精度计算阶乘C++代码,含阶乘结果位数及末尾0数量统计*/{unsignedlongc=100000,i=0,j=0,k,M=0,N;cout<>N;/*计算20000!耗时0.483秒*/long*a=newlong[k=N];for(*a=1;++i<N;k?j+=(k/=5):0)a[i]=0;for(printf("尾数:%ld个0 位数:",j);N;j?a[++M]=j:0,N--)for(i=j=0;i<=M;i++)a[i]=(j+=a[i]*N)%c,j/=c;for(j=a[M],cout<9999?5:j>999?4:j>99?3:j>9?2:1)<<endl<<j;M;)printf("%05ld",a[--M]);delete[]a;cin.ignore(),cin.ignore();return0;}
变化
定义扩展
伽玛函数
阶乘的定义可推广到复数,其与伽玛函数的关系为:
伽玛函数满足Γ Γ -->(n+1)=nΓ Γ -->(n){\displaystyle \Gamma (n+1)=n\Gamma (n)},
递进/递降阶乘
递进阶乘:(x)n=xn¯ ¯ -->=x(x+1)...(x+n− − -->1){\displaystyle (x)_{n}=x^{\overline {n}}=x(x+1)...(x+n-1)}
递降阶乘:xn_ _ -->=x(x− − -->1)...(x− − -->n+1){\displaystyle x^{\underline {n}}=x(x-1)...(x-n+1)}
xn¯ ¯ -->=(− − -->1)n(− − -->x)n_ _ -->{\displaystyle x^{\overline {n}}=(-1)^{n}(-x)^{\underline {n}}}
双阶乘
n!!{\displaystyle n!!}表示双阶乘,其定义为: (2n− − -->1)!!=1× × -->3× × -->5× × -->7× × -->⋯ ⋯ -->× × -->(2n− − -->1){\displaystyle (2n-1)!!=1\times 3\times 5\times 7\times \cdots \times (2n-1)}
(2n)!!=2× × -->4× × -->6× × -->8× × -->⋯ ⋯ -->× × -->(2n)=2nn!{\displaystyle (2n)!!=2\times 4\times 6\times 8\times \cdots \times (2n)=2^{n}n!}
广义的双阶乘
无视上述定义的n!!因为即使值的N,双阶乘为奇数可扩展到最实数和复数z的注意到,当z是一个正的奇数则:
获得的表达接受一个以上公式(2n+1)!!{\displaystyle (2n+1)!!}和(2n− − -->1)!!{\displaystyle (2n-1)!!}并表示在条件发生的阶乘函数的γ既可以看出(使用乘法定理)等同于一个给定在这里。
z!!定义为所有复数除负偶数。
使用它的定义,半径为R的n维超球其体积可表示为:
多重阶乘
n!(k){\displaystyle n!^{(k)}}被称为n的k重阶乘,定义为:
广义的多重阶乘
能将多重阶乘推广到复数(甚至是四元数)
四次阶乘
所谓的四次阶乘(又称四重阶乘) 不是 n!,而是 (2n)!/n!,前几个四次阶乘为
他也等于
hyper阶乘
hyper阶乘(hyperfactorial有时译作过度阶乘)写作H(n),其定义为:
hyper阶乘和阶乘差不多,但产生更大的数。hyper阶乘的增长速度却并非跟一般阶乘在大小上相差很远。 前几项的hyper阶乘为:
超级阶乘
1995年,尼尔·斯洛恩和西蒙·普劳夫定义了超级阶乘(superfactorial)为首n个阶乘的积。即sf(n)=1!×2!×3!×...×n!(OEIS:A000178)。一般来说
另一种定义
柯利弗德·皮寇弗在他的书Key to Infinity定义了另一个超级阶乘,写作nS!{\displaystyle n\mathrm {S} \!\!\!\!\!\;\,{!}}(nS!{\displaystyle n\mathrm {S} \!\!\!\!\!\;\,{!}}实际上应该是!和S重叠在一起):nS!=n(4)n{\displaystyle n\mathrm {S} \!\!\!\!\!\;\,{!}=n^{(4)}n},表示hyper4,使用高德纳箭号表示法即nS!=(n!)↑ ↑ -->↑ ↑ -->(n!){\displaystyle n\mathrm {S} \!\!\!\!\!\;\,{!}=(n!)\uparrow \uparrow (n!)}。这个数列:
素数阶乘
素数阶乘是所有小于或等于该数且大于或等于2的素数的积,自然数n的素数阶乘,写作n#。
目前素数阶乘只能用递归方式定义,因为尚未找到一个能用基本函数表示所有素数的函数或一条包含所有素数的曲线
一般情况下素数阶乘定义为:
其中, π(n)是素数计数函数(OEIS中的数列A000720),小于或等于某个实数n的素数的个数的函数≤n。
自然数阶幂
阶幂也称叠幂或者重幂记作n!{\displaystyle n^{!}}(感叹号!写在自然数的右上角),它的定义是将自然数1至n的数由大到小作幂指数重叠排列,数学定义如下:
其中n ≥ 1,前几项的重幂数为:
1 , 2 , 9 , 262144 , ...
第5个重幂数是一个有183231位阿拉伯数字组成的超大自然数。
二次阶幂:
相应地,m次阶幂定义如下:
其中n,m≥1,且n,m∈Z。
符号史
瑞士数学家欧拉(Euler, L.)于1751年用大写字母M{\displaystyle M}表示m{\displaystyle m}阶乘M=1⋅ ⋅ -->2⋅ ⋅ -->3⋅ ⋅ -->⋯ ⋯ -->⋅ ⋅ -->m{\displaystyle M=1\cdot 2\cdot 3\cdot \cdots \cdot m}。
意大利数学家鲁菲尼(Ruffini, P.)在1799年出版的方程著述中,用小写字母π π -->{\displaystyle \pi }表示m{\displaystyle m}阶乘。
德国数学家高斯(Gauss, C.F)于1818年则用Π Π -->(n){\displaystyle \Pi (n)}表示n阶乘。
用符号∣ ∣ -->n_ _ -->{\displaystyle {\underline {\mid n}}}表示n{\displaystyle n}阶乘英国法起源于英国,尚不能确定其创始人,1827年,由雅来特(Jarrett)的建议得以流行,现代有时亦用此阶乘符号。
现在通用的阶乘符号n!{\displaystyle n!}是法国数学家克拉姆(Kramp, C.)于1808年最先提出来的,后经德国数学家、物理学家格奥尔格·欧姆(Ohm, M.)等人的倡议而流行起来,直用到现在。
参见
伽玛函数
斯特灵公式
阶乘符号
排列组合
威尔逊定理
参考文献
^MathWorld上Factorial的资料,作者:埃里克·韦斯坦因。
免责声明:以上内容版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。感谢每一位辛勤著写的作者,感谢每一位的分享。
相关资料
- 有价值
- 一般般
- 没价值