排列計算器

排列計算器

要計算排列數,請先輸入可選元素的總數(n),再輸入要選取的次數,也就是序列長度,通常記為 kr。如果同一個元素可以重複選取,請勾選「可重複選取」。接著按下「計算」按鈕,結果就會顯示在下方。

結果:
2026-09-20, 撰寫
Adam Narkiewicz

Adam 擁有經濟學博士學位,負責撰寫技術文章,並督導線上應用程式的開發。您可以在以下平台找到他:
https://narkiewicz.info/
https://www.linkedin.com/in/adamnarkiewicz/

什麼是排列?

排列指的是改變一組元素在序列中的順序。排列數告訴我們,這些元素一共有多少種不同的排法。

所謂「n 中取 k 的排列」,就是從較大 n 個元素集合中選出 k 個,並把它們排成一個序列。排列計算器會根據您輸入的 nk 算出這樣的排列共有多少種。有些資料會用 r 來代替 k,兩者表示的是同一個意思。

n 中取 k 的排列可以分成兩種情況。第一種是不放回,也就是不重複的排列;在這種情況下,n 個元素中的每一個,在同一個序列中最多只能出現一次。第二種是可放回,也就是可重複選取的排列;如果同一個元素可以在序列中出現多次,就屬於這一類。本計算器可以計算這兩種排列。

排列與組合

排列常常會和組合混在一起。比如說,在日常生活中,我們可能會說「打開鎖或保險箱的數字組合」。不過,嚴格來說,開鎖用的一串數字通常是「重複排列」。

在數學裡,排列和組合最大的差別,就在於「順序」要不要算進去。如果是排列,元素的先後順序很重要,所以我們會談到「排法」和「序列」。相反地,如果是組合,順序就不重要;這時候,比較適合說的是「選取元素」,或是討論「元素的子集」。

開鎖密碼是一串有順序的數列,而且數字的順序當然會影響結果。因此,把它稱為「組合」雖然在日常生活中很常見,但從數學角度來看,其實並不正確。

如果您想了解的是組合,而不是排列,可以前往我們的組合計算器

排列公式

我們先來看不放回的排列,也就是 n 中取 k 不可重複的排列。如果要用 n 個元素排出長度為 k 的序列,那麼可以得到多少種不同的序列呢?答案可以用下面的公式表示:

P(n,k)=n!(nk)!

公式中的 n!,表示 n 的階乘。除了 P(n,k) 之外,有些資料也會使用其他符號來表示排列:

P(n,k)=Pkn=Pn,k=(n)k=nk_

如果是可放回的排列,也就是 n 中取 k 的重複排列,則使用下面這個公式:

U(n,k)=nk

這其實就是 nk 次方。

排列公式怎麼來的?

我們可以想像一下:現在要用 n 個元素,排出一個長度為 k 的序列。第一個位置可以放什麼呢?因為一開始有 n 個元素可以選,所以第一個位置有 n 種選擇。如果是不可重複的排列,第一個元素選走之後,就不能再用了。因此,第二個位置只剩下 n1 個元素可以選。接著,第二個元素也被選走,到了第三個位置,就只剩下 n2 個元素可以選。這個過程一直繼續下去,直到整個序列都填滿為止,於是會得到下面的公式:

P(n,k)=n×(n1)×(n2)××(nk+1)k 個因數

接下來,我們可以讓這個式子同時乘以、再除以同一個數,這樣它的值不會改變。這裡選的是 (nk)!,整理之後就會得到:

P(n,k)=n×(n1)×(n2)××(nk+1)×(nk)!(nk)!=n!(nk)!

如果是重複排列,一開始的情況很相似:序列的第一個位置,一樣可以從 n 個元素中選一個。不同的是,因為可重複選取,被選過的元素不會從可選範圍中拿掉。所以到了第二個位置,仍然有 n 個元素可以選;第三個位置也是一樣,後面的每一個位置都如此。這樣一共選 k 次,最後公式就變成:

U(n,k)=n×n××nk 個因數=nk

排列的例子

例子:一副撲克牌有多少種排列?

一般一副撲克牌有52張牌。那麼,這52張牌總共有多少種不同的排法呢?在這個例子中,可用的元素總數是52,所以 n = 52。序列長度,也就是我們要放進排列中的牌數,也是52,因為我們要排列的是整副牌。因此,k = 52。這裡沒有重複的情況,因為每一張牌在排列中都只會出現一次。知道這些條件後,就可以套用公式:

P(52,52)=52!(5252)!=52!0!=52!8.066×1067

這是一個非常大的數字。您可以使用我們的排列計算器,得到完整的精確答案。由於這裡的選取數量等於元素總數,也就是 k = n,所以公式會簡化成單純的階乘。因此,也可以直接計算52的階乘,得到同樣的答案。

例子:我可以用「一帆風順」組出多少個三字排列?

我們有四個不同的字,現在想看看,用這四個字可以排出多少種不同的三字排列。同樣地,每個字都只能使用一次,所以可以套用公式 P(4,3)=24。也就是說,一共有24種排列。下面列出全部24種可能:

一帆風
一帆順
一風帆
一風順
一順帆
一順風
帆一風
帆一順
帆風一
帆風順
帆順一
帆順風
風一帆
風一順
風帆一
風帆順
風順一
風順帆
順一帆
順一風
順帆一
順帆風
順風一
順風帆

例子:7 顆不同顏色的球,要分給 4 個小朋友,有幾種分法?

在這個例子中,我們要把球分給四個小朋友:小安、小美、小傑和小宇,而且每個人都拿到一顆球。有7顆球,顏色分別是白色、橘色、藍色、綠色、黃色、紫色和棕色。那麼,要從這7顆球中各選一顆分給4個小朋友,總共有多少種分法呢?這時候,排列就派上用場了。因為同一顆球不能同時分給兩個小朋友,所以我們要用「不放回」的排列來計算:P(7,4)=840

因此,這7顆球分給4個小朋友,一共有840種不同的分法。

例子:從20位同學中選出班長、學藝股長和風紀股長,有幾種選法?

假設班上有20位同學。首先,班長可以從這20人當中選出1人。選出班長之後,剩下19人可以擔任學藝股長。接著,當班長和學藝股長都已經選好,風紀股長就可以從剩下的18人當中選出。所以,我們把這幾個數字相乘,就會得到:20×19×18=6840。也就是說,從20位同學中選出3人分別擔任這些職務,一共有6840種可能。

一般來說,只要有 k 個不同的職位要安排,又有 n 位候選人,就可以用 P(n,k) 來計算共有多少種安排方式。在這個例子中,就是:P(20,3)=6840

例子:如果密碼鎖是4位數,而且沒有0,會有多少種「組合」?

不是一般常見的密碼鎖,因為可用的數字是1到9,而不是0到9。因此,元素總數是 n = 9,序列長度則是 k = 4。每一個數字都可以重複使用,所以這裡要用重複排列來計算。公式如下:

U(n,k)=nk=94=6561

因此,一共有6561種可能的「組合」。如果每試一次密碼需要1秒,那麼把所有可能都試過一遍,應該不到2小時就能打開這個鎖。不過要注意,題目中使用「組合」這個說法,其實並不完全符合數學上的定義。因為密碼中數字的順序會影響結果,所以嚴格來說,這裡討論的應該是「重複排列」,而不是組合

例子:密碼有多少種可能?

密碼有多少種可能,主要取決於兩件事:密碼的長度,以及可以使用多少種字元。我們用一個例子來看。假設密碼長度是10個字元,而且可以使用英文小寫字母和大寫字母,也就是 a 到 z、A 到 Z,一共52個字母;另外還可以使用數字0到9,以及30個特殊字元:

! @ # $ % ^ & * ( ) - _ = + [ ] \ { } | ; : ' " , . / < > ?

總共可以使用的字元數就是:52 + 10 + 30 = 92,每一個字元都可以重複使用,所以這裡要計算的是「n 中取 k 的重複排列」。公式如下:

U(n,k)=nk=9210=43,438,845,422,363,213,824

這會得到一個非常大的密碼數量。換句話說,只要您的密碼是隨機選出的字元,而不是像 1qaz2wsx12345678,或 iloveyou520 這種容易猜到的密碼,別人幾乎不可能單靠一個一個嘗試所有「組合」來猜中您的密碼。

Python 中的排列

如果想在 Python 這類程式語言中計算排列數,可以直接依照排列公式,自己寫一個函式:

import math def nPk(n, k): return int(math.factorial(n) / math.factorial(n - k))

同樣地,也可以使用對應的重複排列公式:

def nUk(n, k): return n**k

如果您想產生所有不重複的排列,可以這樣寫:

from itertools, import permutations def list_perms(n, k): perms = permutations(range(n), k) for p in perms: print(p)

而如果是重複排列,則可以這樣寫:

import itertools def list_perms_with_replacents(n, k): for perm in itertools.product(range(n), repeat=k): print(perm)

大數用的指數計算器

因為重複排列公式是 U(n,k)=nk,所以這個排列計算器也可以當作指數計算器,用來計算一個數的次冪。這在結果非常大的時候特別方便。比如說,想得到 31000 的精確值,用一般計算器可能不容易處理,但用這個工具就可以很快算出來。使用方式也很簡單:勾選「可重複選取」,把要被乘方的數輸入為 n,把指數輸入為 k。要注意的是,這裡只能使用非負整數。

如何使用排列計算器

要使用這個計算器,請先在標有 n 的欄位中,輸入可供選取的元素數量。接著,在下方標有 kr 的欄位中,輸入選取數量,也就是序列的長度。如果要計算重複排列,請勾選「可重複選取」。然後,按下「計算」按鈕開始計算;如果想重新輸入數值,則可以按「清除」。

計算結果會顯示在下方的「結果」欄位中。如果結果較小,會以單行顯示。若結果很大,系統會用兩種方式呈現:上方顯示科學記號的近似值,下方則顯示完整的精確數字。如果計算過程中發生錯誤,錯誤訊息會取代結果顯示在這裡。

這個計算器只接受非負整數。若是不重複的排列,輸入的數字還必須符合 kn。若是重複排列,nk 不能同時為0,因為0的0次方沒有定義。輸入數值沒有固定上限。像是 n = 8000000000、k = 1000 這類大數(從地球人口中選出1000人有幾種選法),也應該可以順利計算。至於更大的結果是否能算出來,則要看您的系統設定而定。不過要注意,計算很大的結果可能需要較長時間;如果計算量超過裝置負荷,網站也可能會當掉。

您也可以選擇結果要用哪一種 進位制顯示。預設是10,也就是以十進制顯示。進位制可以設定為2到36之間的任一整數。不過,只有「結果」會依照您選擇的進位制顯示;您輸入的 nk,系統一律會視為十進制數字來處理。

計算完成後,您可以選擇:1)將結果複製到剪貼簿,2)將結果下載為檔案,3)列印結果,4)將結果連結複製到剪貼簿,或5)清除「結果」欄位。若要使用這些功能,請點擊「結果」欄位上方相對應的圖示。

引用或內嵌本內容

您可以免費使用本網站內容,也可以用於商業用途;只要引用本網站作為資料來源即可。如果要在學術文章中引用,可以使用以下格式:

Narkiewicz Adam. 排列計算器,https://minesweeper.us/踩地雷/排列計算器/,瀏覽日期:.

如果要在網路上引用本網站,可以直接連結到本頁的主要網址(https://minesweeper.us/踩地雷/排列計算器/)。如果想連到某一個特定的計算結果,也可以使用「複製連結到剪貼簿」按鈕。

您也可以使用 iframe 元素,將本頁內嵌到自己的網站中。如果只想顯示計算器本身,而不顯示選單、文章等其他內容,可以在 src 屬性中使用以下網址:https://minesweeper.us/踩地雷/排列計算器/?iframe=1

也請您在網站上註明本頁來源,並以可點擊的連結引用本頁。如果您已經將我們的應用程式內嵌到網站中,也歡迎寄信到 contact@simiade.com 告訴我們。這樣一來,如果日後我們對應用程式做出調整,而網站管理員需要更新顯示方式時,我們也可以通知您。

參考資料

Charalambides, Charalambos A., Enumerative Combinatorics, CRC Press, 2002.

聯絡我們

如果您有任何問題、意見或建議,歡迎在這裡留下回饋:

也可以郵寄至:

Simiade
Adam Narkiewicz
Plac Bankowy 2
00-095 Warszawa
波蘭
+48 728235409
contact@simiade.com
https://simiade.com/zh-Hant/

必須輸入非負整數。不可使用分隔符號,只能輸入數字。

進位制必須是2到36之間的整數。

正在從個元素中計算長度為的排列,請稍候……

(可重複選取)

正在顯示結果……

發生錯誤:

進制)

計算重複排列時,n 和 k 不能同時為0。

排列計算器|大數|

P(,)

U(,)

n 不能小於 k。

排列 n=,k=

進制

可重複選取

目前不可重複選取

目前可重複選取

您的意見回饋已送出,謝謝您!