階乘計算器
要計算階乘,請在「求階乘」欄位中輸入一個數字,再按下「計算」。計算結果會顯示在「結果」欄位中。
什麼是階乘?
要計算一個數的階乘,就是把從1開始,一直到這個數為止的所有整數全部相乘。階乘的符號是嘆號「!」。例如
可以讀作「四的階乘等於24」。
階乘只能用在非負整數,也就是0或大於0的自然數。為了計算上的方便,數學家約定 ,也就是說,0的階乘等於1。
階乘公式
給定一個數字 n,它的階乘可以用以下幾種公式表示:
這幾個公式雖然寫法不同,但算出來的結果都一樣。公式(1)是從階乘的定義來的,也就是把1到 n 的所有整數相乘。公式(2)則是公式(1)的簡寫,使用乘積符號來表示。公式(3)是遞迴公式,可以讀作:「n 的階乘等於 n 乘以 n–1 的階乘。」
階乘的用途與例子
階乘在數學中有許多用途。舉例來說,在組合數學和機率論裡,階乘很常見,因為它可以幫助我們計算一組不同物件有多少種排法。更具體地說,階乘常用在排列與組合的公式中。除此之外,在許多其他數學分支中,也會看到階乘的應用。
例子:3個物品有幾種排法?
我們先從一個簡單的例子來看。假設桌上有三樣東西:一顆蓮霧、一顆釋迦和一顆芭樂。現在要決定吃它們的順序,總共有幾種可能呢?第一個要吃什麼,有3種選擇。吃掉第一個水果之後,剩下2個水果,所以第二個要吃什麼,就只剩2種選擇。等到最後只剩1個水果時,就沒有別的選擇了,只能吃剩下的那一個。因此,這三個水果的排列方式是 種:
例子:4個數字有幾種排法?
再來看看4個數字的情況。假設我們有1到4這四個數字,想知道它們總共有幾種排列方式。答案就是:。也就是說,一共有24種可能。下面列出這24種排列方式:
不過,這個算法有一個前提:四個數字必須都不相同。如果有些數字重複出現,例如3、5、5和7,就不能只用簡單的階乘來算了,公式會變得稍微複雜一些。這一點,我們會在下一個例子中再仔細說明。
例子:5個字母有幾種排法?
我們再來看一個字母排列的例子。英文單字 FRUIT 一共有5個字母,而且每個字母都不相同。那麼,這5個字母總共有幾種排列方式呢?答案是:,也就是說,可能的排法相當多!
不過,這個簡單的公式只適用在沒有重複字母的情況。如果一個單字裡有重複出現的字母,算法就要稍微調整。做法是:先取整個單字長度的階乘,再依照每個重複字母出現的次數,分別除以它們的階乘。例如 MISSISSIPPI 這個英文單字(一條美國的河流名字),一共有11個字母。其中,S 和 I 都各出現4次,P 則出現2次。因此,這些字母總共有34,650種不同的排列方式:
為什麼要把這些階乘放在分母呢?我們可以用 S 來想。假如四個 S 當中的兩個互換位置,整個單字看起來其實沒有任何改變。因為 S 一共有4個,所以光是這4個 S 彼此交換,就有 4! 種排法;但這些排法都會得到一模一樣的字。因此,我們要把這些重複計算的情況扣掉,方法就是把原本的總階乘除以 4!。其他重複字母也是同樣的道理。
例子:一副52張的撲克牌有幾種洗牌方式?
最後,我們來看一個很有趣的例子:一副52張的撲克牌,總共有多少種不同的排列方式?答案就是52的階乘,也就是52!。這是一個非常大的數字:52! = 80,
這代表什麼呢?簡單來說,如果您把一副牌確實洗亂,要再次洗出一模一樣的排列,幾乎可以說是不可能的。
一個數的階乘是……
以下整理了一些常見的階乘:
| 問題 | 答案 |
|---|---|
| 0的階乘是多少? | 0的階乘等於1。 |
| 1的階乘是多少? | 1的階乘等於1。 |
| 2的階乘是多少? | 2的階乘等於2。 |
| 3的階乘是多少? | 3的階乘等於6。 |
| 4的階乘是多少? | 4的階乘等於24。 |
| 5的階乘是多少? | 5的階乘等於120。 |
| 6的階乘是多少? | 6的階乘等於720。 |
| 7的階乘是多少? | 7的階乘等於5,040。 |
| 8的階乘是多少? | 8的階乘等於40,320。 |
| 9的階乘是多少? | 9的階乘等於362,880。 |
| 10的階乘是多少? | 10的階乘等於3,628,800。 |
| 52的階乘是多少? | 52的階乘等於80, |
| 100的階乘是多少? | 100的階乘等於93, |
100的階乘可以用科學記號近似表示為:。
Python 中的階乘
如果使用 Python 這類程式語言,可以直接呼叫內建函式來計算階乘:
import math
math.factorial(n)
不過,如果想自己寫一個階乘函式,也可以用遞迴的方式來做:
def factorial(n):
if n > 1:
return factorial(n-1) * n
else:
return 1
或者,也可以使用迴圈來計算:
def factorial(n):
result = 1
for k in range(2, n + 1):
result *= k
return result
負數的階乘
階乘只定義在非負整數上,也就是0或大於0的整數。過去有不少人嘗試把階乘推廣到實數或複數的範圍。不過,一般仍認為,負數的階乘應該保持未定義。舉例來說,伽瑪函數可以把階乘的概念推廣到幾乎所有複數,但有一個例外:負整數。
階乘的近似值
把1到 n 的所有整數一個一個相乘,有時候會很花時間,尤其當 n 很大的時候更是如此。因此,數學家也想出了一些公式,可以快速估算階乘的大小。下面列出兩個很有名的近似公式。
史特靈公式
拉馬努金公式
如何使用階乘計算器?
要使用這個計算器,請在「求階乘」欄位中輸入一個數字,然後按下「計算」按鈕。計算結果會顯示在下方。如果結果是一個很大的數字,系統會用兩種方式呈現:上方會先顯示較短的科學記號近似值,下方則會顯示完整的精確結果。
這個計算器只能處理非負整數,也就是0或大於0的整數。它沒有預先設定的上限;只要您的裝置和瀏覽器能夠負荷,理論上可以輸入任意大的數字。在桌上型電腦上,有些版本的 Chrome 可以很輕鬆地計算10,000,000的階乘;但 Firefox 和 Safari 在處理超過60,000的數字時,可能就會比較吃力。
對於很大的數字,計算結果可能需要幾秒鐘,顯示在畫面上甚至可能花更久。如果輸入的數字太大,系統會顯示錯誤訊息。有時候,頁面也可能還來不及顯示訊息就當掉,這時就需要重新整理頁面。
計算器也可以用10以外的進位制來顯示結果。您可以指定2到36之間的任一數字。例如,如果想用十六進制顯示結果,就輸入16。這裡要特別注意:如果結果是用科學記號顯示,尾數和指數都會使用您選擇的進位制。不過,輸入的數字本身,仍然一律會以十進位讀取和顯示。
引用或內嵌本內容
您可以免費使用本網站內容,也可以用於商業用途;只要引用本網站作為資料來源即可。如果要在學術文章中引用,可以使用以下格式:
如果要在網路上引用本網站,可以直接連結到本頁的主要網址(https://
您也可以使用 iframe 元素,將本頁內嵌到自己的網站中。如果只想顯示計算器本身,而不顯示選單、文章等其他內容,可以在 src 屬性中使用以下網址:https://
也請您在網站上註明本頁來源,並以可點擊的連結引用本頁。如果您已經將我們的應用程式內嵌到網站中,也歡迎寄信到 contact@simiade.com 告訴我們。這樣一來,如果日後我們對應用程式做出調整,而網站管理員需要更新顯示方式時,我們也可以通知您。
參考資料
Weisstein, Eric W., Factorial., MathWorld—A Wolfram Resource.
Weisstein, Eric W., Stirling's Approximation, MathWorld—A Wolfram Resource.
聯絡我們
如果您有任何問題、意見或建議,歡迎在這裡留下回饋:
也可以郵寄至:
Adam Narkiewicz
Plac Bankowy 2
00-095 Warszawa
波蘭
+48 728235409
contact@simiade.com
https://simiade.com/zh-Hant/
