10的階乘代碼 10的階乘

階乘運算(Factorial)任何大于等于1 的自然數n 階乘:

10的階乘代碼  10的階乘

文章插圖
也即
10的階乘代碼  10的階乘

文章插圖
下表給出了一些自然數的階乘值:
10的階乘代碼  10的階乘

文章插圖

10的階乘代碼  10的階乘

文章插圖
https://en. *** .org/wiki/Factorial
10的階乘代碼  10的階乘

文章插圖
100!是一個158位的整數
100!這么大的數到底怎么算出來的呢?
階乘的計算直接求階乘,需要經過大量的乘法運算,位數太多,計算機也無法表示出來 。此時,往往采用對數 *** ,將階乘的乘法運算化為加法運算 。如
10的階乘代碼  10的階乘

文章插圖
編寫一段Python語言代碼求等式右邊的值:
import math
digit_num =0.0
for i in range(100):
digit_num += math.log10(i+1)
print(digit_num)
運行得到
157.97000365471575(近似值),即
10的階乘代碼  10的階乘

文章插圖
這說明100!是一個158位的數 。根據對數函數與指數函數的關系,可以反求出階乘值:
10的階乘代碼  10的階乘

文章插圖
以前不理解對數意義的朋友這里可以體會到對數的強大威力了吧?
另,階乘有一個有趣的近似公式:
10的階乘代碼  10的階乘

文章插圖
斯特林()公式- Stirling's approximation
10的階乘代碼  10的階乘

文章插圖
斯特林公式與階乘曲線對比
我們實際驗證一下斯特林公式的誤差 。將n=100代入上述公式,得到100!≈9.3248476252693432477647561271787023234709745647418062292817958153368849555554046603086239162755522767325066157982750581730201788648720772023094674209485726744222550819049228652031041119504096696429434529708431163809342056757648101523406286160085266735172818639831611426620941684736285030409855242311268344207307073067790438191255736013812573265362270229118719809726115438569410402607630035313046957956392566366745658132452941877904052886947223641749037779513877635612354880691524914259437590327045612488757528210... × 10^157
與我們用對數求得的值之間的誤差大約為0.08329%,即萬分之8.3,相當精準吧?。?!
階乘的延拓可以將點(n, n!)即(0, 0!), (1,1!), (2,2!), (3,3!),...在平面坐標系上表示出來 。
10的階乘代碼  10的階乘

文章插圖
n!, n=0..4
10的階乘代碼  10的階乘

文章插圖
n!, n=0..6
10的階乘代碼  10的階乘

文章插圖
n!, n=0..10
我們能不能找到一條數學曲線,能夠穿越上述所有點(n,n!)呢?找到這樣一條曲線的過程就是數學上的解析延拓,從整數域解析延拓到實數域 。
伽瑪函數人類恰恰找到了這樣一個函數,即伽瑪函數(Gamma Function) 。伽瑪函數的定義如下:
10的階乘代碼  10的階乘

文章插圖
伽瑪函數是一個用定積分公式定義的函數,所以求伽瑪函數變成了求定積分 。不難求得:
10的階乘代碼  10的階乘

文章插圖
進而
10的階乘代碼  10的階乘

文章插圖
伽瑪函數與實數域階層的關系
10的階乘代碼  10的階乘

文章插圖

10的階乘代碼  10的階乘

文章插圖
【10的階乘代碼10的階乘】這些結論我就不做證明了,一方面這些知識可以很便捷地索到,另一也是更重要的方面是,畢竟我的目標不是嚇唬大家和顯擺自己的學問,而是希望盡可能充分地向大家分享、呈現數學的奧妙、美麗和魅力 。
從該等式可以看出,階乘不就是伽瑪函數從實數域降維到整數域的降維函數嗎?反之,伽瑪函數不正是階乘序列在從整數域向實數域的延拓嗎?
伽瑪函數衍生出的一個常數,即為弗朗桑-羅賓遜常數(Fransén–Robinson Constant):
10的階乘代碼  10的階乘

文章插圖
問題:伽瑪函數是階乘運算的唯一解析拓展函數嗎?

推薦閱讀