書籤    
鞋碼換算    
根號化簡    
梯形面積    
圓的計算    
扇形面積    
橢圓面積    
圓柱體積    
球的體積    
圓錐體積    
圓管體積    
年齡計算    
天數計算    
複利計算    
單利計算    
利息計算    
現值計算    
ROI 計算機    
IRR 計算機    
GDP 計算機    
ROAS 計算    
BMI 計算機    
BMR 計算機    
1RM 計算機    
進位轉換    
薪資換算    
油錢計算    
油耗計算    
坡度計算    
   新增
機率與隨機計算工具
獨立事件機率
獨立事件機率
兩事件機率反推
兩事件機率反推
重複試驗機率
重複試驗機率
條件機率與貝氏定理
條件機率與貝氏定理
期望值計算機
期望值計算機
二項分布計算機
二項分布計算機
排列組合計算
排列組合計算
環狀排列計算
環狀排列計算
重複組合計算
重複組合計算
亂數產生器
亂數產生器
平均與統計計算工具
平均數計算機
平均數計算機
眾數中位數計算
眾數中位數計算
標準差計算機
標準差計算機
四分位數計算機
四分位數計算機
次數分配表
次數分配表
相關係數計算機
相關係數計算機
常態分布機率
常態分布機率
z 分數計算機
z 分數計算機
信賴區間計算機
信賴區間計算機
樣本數計算機
樣本數計算機
捉放法與抽樣調查
捉放法與抽樣調查
p 值計算機
p 值計算機
比例與百分比計算工具
百分比計算機
百分比計算機
增減率計算機
增減率計算機
百分比差異
百分比差異
百分誤差計算機
百分誤差計算機
比例計算機
比例計算機
打折計算機
打折計算機
營業稅計算機
營業稅計算機
毛利率計算機
毛利率計算機
速度計算工具
速率計算機
速率計算機
密度與濃度計算工具
密度計算機
密度計算機
莫耳濃度計算機
莫耳濃度計算機
分子量/莫耳質量
分子量/莫耳質量
物理與電學計算工具
歐姆定律計算
歐姆定律計算
瓦數↔安培換算
瓦數↔安培換算
電阻色碼計算
電阻色碼計算
電壓降計算
電壓降計算
單位換算計算工具
坪↔平方公尺換算
坪↔平方公尺換算
重量單位換算
重量單位換算
鞋碼換算
鞋碼換算
整數與正負數計算工具
除法直式計算
除法直式計算
最小公倍數計算
最小公倍數計算
最大公因數計算
最大公因數計算
正負數計算機
正負數計算機
質因數分解
質因數分解
一次不定方程式
一次不定方程式
同餘與餘數計算
同餘與餘數計算
因數計算機
因數計算機
羅馬數字轉換
羅馬數字轉換
分數、小數與四捨五入計算工具
分數計算機
分數計算機
帶分數計算機
帶分數計算機
約分計算機
約分計算機
分數換小數
分數換小數
小數換分數
小數換分數
四捨五入計算機
四捨五入計算機
方程式與不等式計算工具
一元一次方程式
一元一次方程式
聯立方程式
聯立方程式
一元二次方程式
一元二次方程式
絕對值方程式
絕對值方程式
一元二次不等式
一元二次不等式
多項式與乘法展開計算工具
二項式定理
二項式定理
平方根與 n 次方根計算工具
根號化簡
根號化簡
開根號計算
開根號計算
指數與對數計算工具
次方計算機
次方計算機
對數計算機
對數計算機
常用對數與位數
常用對數與位數
科學記號換算
科學記號換算
科學記號運算
科學記號運算
半衰期計算機
半衰期計算機
複數計算工具
複數計算機
複數計算機
複數極式轉換
複數極式轉換
棣美弗定理
棣美弗定理
函數與圖形計算工具
直線斜率計算
直線斜率計算
一次函數計算機
一次函數計算機
正比反比計算機
正比反比計算機
二次函數 y=ax²
二次函數 y=ax²
兩點距離公式
兩點距離公式
空間兩點距離
空間兩點距離
內分點與外分點
內分點與外分點
點到直線的距離
點到直線的距離
經緯度距離計算
經緯度距離計算
配方法計算機
配方法計算機
圓方程式計算機
圓方程式計算機
圓錐曲線計算機
圓錐曲線計算機
極坐標轉換
極坐標轉換
數列計算工具
等差數列計算
等差數列計算
等比數列計算
等比數列計算
費氏數列計算
費氏數列計算
遞迴關係式計算
遞迴關係式計算
向量計算工具
向量計算機
向量計算機
向量外積計算
向量外積計算
矩陣計算工具
矩陣計算機
矩陣計算機
行列式計算機
行列式計算機
反矩陣計算
反矩陣計算
平面圖形計算工具
sin cos tan 計算
sin cos tan 計算
度與弧度換算
度與弧度換算
三角函數疊合
三角函數疊合
三角形計算機
三角形計算機
三角形面積計算
三角形面積計算
直角三角形計算
直角三角形計算
畢氏定理計算
畢氏定理計算
多邊形內角外角
多邊形內角外角
相似比與面積比
相似比與面積比
平行線與角
平行線與角
長方形面積
長方形面積
平行四邊形面積
平行四邊形面積
梯形面積
梯形面積
圓的計算
圓的計算
扇形面積
扇形面積
圓周角定理
圓周角定理
橢圓面積
橢圓面積
立體圖形計算工具
正方體體積
正方體體積
正方體表面積
正方體表面積
長方體體積
長方體體積
長方體表面積
長方體表面積
圓柱體積
圓柱體積
圓柱表面積
圓柱表面積
球的體積
球的體積
球的表面積
球的表面積
球冠的體積
球冠的體積
球冠的表面積
球冠的表面積
橢球的體積
橢球的體積
橢球的表面積
橢球的表面積
四角錐體積
四角錐體積
四角錐表面積
四角錐表面積
圓錐體積
圓錐體積
圓錐表面積
圓錐表面積
圓錐台體積
圓錐台體積
圓錐台表面積
圓錐台表面積
圓管體積
圓管體積
膠囊形體積
膠囊形體積
膠囊表面積
膠囊表面積
日期與時間計算工具
年齡計算
年齡計算
天數計算
天數計算
幾天後的日期
幾天後的日期
幾小時後的日期時間
幾小時後的日期時間
星期幾查詢
星期幾查詢
時間加減計算機
時間加減計算機
時差計算機
時差計算機
工時計算機
工時計算機
時間差計算機
時間差計算機
打卡工時計算
打卡工時計算
金融與經濟計算工具
複利計算
複利計算
單利計算
單利計算
利息計算
利息計算
財務計算機 TVM
財務計算機 TVM
現值計算
現值計算
未來值計算
未來值計算
ROI 計算機
ROI 計算機
IRR 計算機
IRR 計算機
回收期間計算
回收期間計算
平均報酬率計算
平均報酬率計算
GDP 計算機
GDP 計算機
網路行銷與廣告指標計算工具
CTR 點擊率計算
CTR 點擊率計算
CVR 轉換率計算
CVR 轉換率計算
CPC、CPM、CPA 計算
CPC、CPM、CPA 計算
ROAS 計算
ROAS 計算
損益平衡 CPA
損益平衡 CPA
LTV 顧客終身價值
LTV 顧客終身價值
CAC 顧客取得成本
CAC 顧客取得成本
流失率計算
流失率計算
A/B 測試顯著性
A/B 測試顯著性
A/B 測試樣本數
A/B 測試樣本數
SEO 流量預估
SEO 流量預估
損益平衡點計算
損益平衡點計算
成本率毛利率換算
成本率毛利率換算
CAGR 計算機
CAGR 計算機
健康與健身計算工具
BMI 計算機
BMI 計算機
睡眠週期計算
睡眠週期計算
熱量計算機
熱量計算機
BMR 計算機
BMR 計算機
TDEE 計算機
TDEE 計算機
理想體重計算機
理想體重計算機
體脂率計算機
體脂率計算機
去脂體重計算機
去脂體重計算機
消耗熱量計算機
消耗熱量計算機
蛋白質計算機
蛋白質計算機
三大營養素計算
三大營養素計算
碳水攝取量計算
碳水攝取量計算
脂肪攝取量計算
脂肪攝取量計算
孩子身高預測
孩子身高預測
運動計算工具
高爾夫差點計算
高爾夫差點計算
配速計算機
配速計算機
1RM 計算機
1RM 計算機
目標心跳率計算
目標心跳率計算
氣象計算工具
體感溫度計算
體感溫度計算
風寒效應計算
風寒效應計算
露點溫度計算
露點溫度計算
電腦計算工具
進位轉換
進位轉換
子網路計算機
子網路計算機
下載時間計算
下載時間計算
家計與水電瓦斯費計算工具
家電電費計算
家電電費計算
度數算電費/反推
度數算電費/反推
年耗電量算電費
年耗電量算電費
冷氣坪數計算
冷氣坪數計算
冷氣電費計算
冷氣電費計算
暖氣電費比較
暖氣電費比較
瓦斯與電費比較
瓦斯與電費比較
換 LED 省多少
換 LED 省多少
薪資換算
薪資換算
家庭收支計算
家庭收支計算
汽車計算工具
油錢計算
油錢計算
電動車充電費用
電動車充電費用
電動車 vs 油車
電動車 vs 油車
油耗計算
油耗計算
輪胎尺寸計算
輪胎尺寸計算
太陽能發電與儲能計算工具
太陽能發電量
太陽能發電量
太陽能板片數
太陽能板片數
太陽能回本年限
太陽能回本年限
儲能電池容量試算
儲能電池容量試算
居家與 DIY計算工具
磁磚數量計算
磁磚數量計算
樓梯尺寸計算
樓梯尺寸計算
混凝土用量計算
混凝土用量計算
房間牆面積計算
房間牆面積計算
壁紙用量計算
壁紙用量計算
油漆用量計算
油漆用量計算
木地板片數計算
木地板片數計算
外牆面積計算
外牆面積計算
碎石用量計算
碎石用量計算
水泥砂漿配比
水泥砂漿配比
坡度計算
坡度計算
木材裁切計算
木材裁切計算
建蔽率、容積率
建蔽率、容積率
地板捲材用量
地板捲材用量
隔熱材用量計算
隔熱材用量計算
窗簾尺寸計算
窗簾尺寸計算
電視尺寸與距離
電視尺寸與距離
培養土用量計算
培養土用量計算
草皮用量計算
草皮用量計算
空心磚數量計算
空心磚數量計算
紅磚數量計算
紅磚數量計算
木棧板材料計算
木棧板材料計算
坡道長度計算
坡道長度計算
螺絲導孔與長度
螺絲導孔與長度
換氣量計算
換氣量計算
油漆稀釋計算
油漆稀釋計算
踢腳板長度計算
踢腳板長度計算
百葉窗捲簾尺寸
百葉窗捲簾尺寸
掛畫高度與位置
掛畫高度與位置
排水坡度與高低差
排水坡度與高低差
螺絲數量計算
螺絲數量計算
木材才數計算
木材才數計算
圍籬材料計算
圍籬材料計算
木材收縮計算
木材收縮計算
矽利康用量計算
矽利康用量計算
房間熱損失計算
房間熱損失計算
家具搬入計算
家具搬入計算
搬家紙箱數量
搬家紙箱數量
收納容量計算
收納容量計算
板材裁切計算
板材裁切計算
層板承重計算
層板承重計算

環狀排列與項鍊排列計算機(排成圓形的方法數)

請選擇排列的種類,並輸入要排的個數 n。會附上算式與圖示,計算排成圓形的方法數。

n 請輸入 1 以上、1,000 以下的半形整數。r 欄只在選擇「從 n 個中選 r 個排成圓形」時使用。答案不會四捨五入,完整顯示每一位數。
計算結果與圖形
在左側輸入欄選擇排列的種類並輸入個數,按下「計算」,結果與圖示就會顯示在這裡。

這個頁面可以做什麼

  • 只要輸入人數,就能算出 \(n\) 個人圍著圓桌坐的坐法(環狀排列)\((n-1)!\)
  • 也能計算從 \(n\) 個中只選 \(r\) 個排成圓形的方法數 \(\dfrac{P^{n}_{r}}{r}\)
  • 也能計算像項鍊那樣,把「翻面後重合的視為相同」的項鍊排列 \(\dfrac{(n-1)!}{2}\)(直接除會出錯的 \(n = 1,\ 2\) 也會正確處理)
  • 「特定 2 人相鄰」「不相鄰」的坐法,也會附上把 2 人綁成一組的算式一起計算
  • 答案不會四捨五入,完整顯示每一位數。位數很多時,也會附上像 \(1.23\times10^{35}\) 這樣的近似值,一眼就能掌握大小
  • 可以用旋轉的圖確認「為什麼要把 \(n!\) 除以 \(n\)」。這個頁面還整理了可直接複製到 Excel、Google 試算表、Python 使用的公式
本頁處理的是要排的東西全都可以區分(沒有相同的東西混在一起)的情形。排成一列的排列 \(P^{n}_{r}\) 與組合 \(C^{n}_{r}\) 本身,可以用頁面下方的相關頁面計算。

這個計算有什麼用?

安排圓桌的座位(聚餐、會議、喜宴)

圓桌就算整張轉動,「誰坐在誰旁邊」的關係也不會改變。所以座位的排法不是排成直線的 \(n!\) 種,而是環狀排列的 \((n-1)!\) 種。6 人是 120 種,8 人是 5,040 種。
座位加上「這 2 人要坐隔壁(或要分開)」的要求,數量就大不相同:6 人中讓特定 2 人坐隔壁的坐法有 48 種,不坐隔壁的有 72 種。喜宴或聚餐的主辦人煩惱「座位安排有幾種」時,就能用數字而不是感覺來掌握。

估算配送路線的數量(物流、旅行推銷員問題)

把營業所也算成 1 個停靠點,考慮經過全部 \(n\) 個地點各 1 次、繞一圈的路線。同一條路線,從哪裡出發都是同一個圈(旋轉);如果去程和回程的距離相同,反方向走距離也一樣(翻面)。所以可以區分的路線數,和項鍊排列一樣是 \(\dfrac{(n-1)!}{2}\) 種。
包含營業所共 10 個地點就有 181,440 種,15 個地點約有 \(4.36\times10^{10}\) 種。全部試一遍再選最短的並不實際,所以配送規劃軟體會用找捷徑的技巧(最佳化方法)。說明「全部檢查的方法行不通」的根據,就是這個方法數。

設計手鍊、項鍊(飾品)

把 \(n\) 顆顏色或形狀不同的珠子串成一圈,設計的數量是項鍊排列的 \(\dfrac{(n-1)!}{2}\) 種。圈不論旋轉或翻面都是同一件飾品,所以要把環狀排列再除以 \(2\)。5 顆珠子是 12 種,6 顆是 60 種。
不過,如果珠子只有一面有圖案,「正反面可以區分、不能翻過來用」,就不能把翻面視為相同。這時不除以 \(2\),用環狀排列的 \((n-1)!\) 種(6 顆是 120 種)來數。光是能不能翻面使用,設計的數量就差 2 倍。

遊戲輪流的順序(桌遊、紙牌遊戲)

許多遊戲是沿著座位朝固定方向輪流。這種「誰的下一個是誰」的輪流順序,整圈座位轉動也不會改變,所以是環狀排列的 \((n-1)!\) 種。4 人是 6 種,5 人是 24 種。
在先手有利的遊戲中,會想連誰先開始都區分。這時把輪流順序的 \((n-1)!\) 種乘上選先手的 \(n\) 種,得到 \(n!\) 種(4 人是 24 種)。能把「只看座位順序的問題」和「也包含先手的問題」分開來數,思考公平的決定方式時就不會迷惑。

排值日生、輪班的輪替(學校、職場)

「依這個順序輪流,輪到最後再回到第一個」的值日表,從誰開始都是同一個循環,所以用環狀排列來數。5 人的值日表有 \((5-1)! = 24\) 種。
如果加上「這 2 人不要連續(相鄰)」的條件,就從全部減去 2 人相鄰的情形,得到 \((n-1)! - 2 \times (n-2)!\) 種。5 人的話是 24 − 12 = 12 種。只加 1 個條件,候選就減半,從公式可以具體看出來。

公式與圖示

環狀排列 \((n-1)!\)(\(n\) 個全部排成圓形)
圖示
數學寫法 (一般的數學式)
\(N\) \(=\) \(\dfrac{n!}{n}\) \(=\) \((n-1)!\)
文字寫法 (把符號換成文字的公式)
③ \(N\):環狀排列的總數 \(=\) ① \(\dfrac{n\text{ 個排成一列的排法 }n!}{\text{旋轉後重合的排法 }n\text{ 種}}\) \(=\) ② \((n-1)!\):少 \(1\) 個的 \(n-1\) 個的階乘
用文字讀公式
① 把 \(n\) 個排成一列的排法 \(n!\),除以旋轉後重合的 \(n\) 種所得的數 ,
② 等於 \((n-1)!\):少 \(1\) 個的 \(n-1\) 個的階乘 ,
③ 這就是 \(N\):環狀排列的總數 。
簡單範例
\(4\) 個人圍著圓桌坐的坐法是
4 人的環狀排列總數 \(=\) \(\dfrac{4\text{ 人排成一列 }24\text{ 種}}{\text{旋轉後重合的 }4\text{ 種}}\) \(=\) \(3\) 的階乘 \(3!\)
\(4! = 4 \times 3 \times 2 \times 1 = 24\)
\(\dfrac{24}{4} = 6\)
\((4-1)! = 3! = 3 \times 2 \times 1 = 6\)
思考重點
排成圓形時,規定「旋轉後會重合的排法,算成同 1 種」。因為把圓桌連同坐著的人一起轉,誰坐在誰旁邊的關係完全不會改變。 為什麼要除以 \(n\)?用 \(4\) 個人 A、B、C、D 來確認最快。一列的排法 ABCD、BCDA、CDAB、DABC,以字母順序來看全都不同。但把它們排成圓形、從上方順時針讀,每一個都是「A 的右邊是 B,B 的右邊是 C,C 的右邊是 D,D 的右邊是 A」這個完全相同的圓圈,因為只是把第 1 個字母移到最後而已。 也就是說,1 個圓圈剛好對應 \(n\) 種一列的排法(轉一圈可以移動 \(n\) 次,不會多也不會少)。在 \(n!\) 種之中,同一個圓圈都被重複計算了 \(n\) 次,所以除以 \(n\),重複就消掉了,得到的就是圓圈的種類數。 另一個想法是「固定一個」。先決定某 1 個人的座位,就再也不能靠旋轉讓排法重合。只要排剩下的 \(n-1\) 個人,所以是 \((n-1)!\) 種。不用除法,也能得到相同的答案。
環狀排列 \(\dfrac{P^{n}_{r}}{r}\)(從 \(n\) 個中選 \(r\) 個排成圓形)
圖示
數學寫法 (一般的數學式)
\(N\) \(=\) \(\dfrac{P^{n}_{r}}{r}\)
文字寫法 (把符號換成文字的公式)
② \(N\):排成圓形的排法總數 \(=\) ① \(\dfrac{\text{從 }n\text{ 個中選 }r\text{ 個排成一列的排法 }P^{n}_{r}}{\text{旋轉後重合的排法 }r\text{ 種}}\)
用文字讀公式
① 把從 \(n\) 個中選 \(r\) 個排成一列的排法 \(P^{n}_{r}\),除以旋轉後重合的 \(r\) 種所得的數 ,
② 就是 \(N\):排成圓形的排法總數 。
簡單範例
從 \(8\) 人中選 \(3\) 人,坐在 3 人座的圓桌,坐法是
從 8 人選 3 人的環狀排列總數 \(=\) \(\dfrac{\text{從 8 人選 3 人排成一列 }336\text{ 種}}{\text{旋轉後重合的 }3\text{ 種}}\)
\(P^{8}_{3} = 8 \times 7 \times 6 = 336\)
\(\dfrac{336}{3} = 112\)
思考重點
想像一張只有 \(r\) 個座位的圓桌,從 \(n\) 個候選人中選人來坐。排在圓上的是 \(r\) 個,所以旋轉後重合的也是每 \(r\) 種一組。請注意不要誤除以 \(n\)。 \(r = n\) 時 \(P^{n}_{n} = n!\),所以 \(\dfrac{n!}{n} = (n-1)!\),和上一個公式完全一致。也就是說,這個是更一般的形式,\((n-1)!\) 是它的特殊情形。
項鍊排列 \(\dfrac{(n-1)!}{2}\)(翻面後重合的視為相同)
圖示
數學寫法 (一般的數學式)
\(M\) \(=\) \(\dfrac{(n-1)!}{2}\)
文字寫法 (把符號換成文字的公式)
② \(M\):項鍊排列的總數 \(=\) ① \(\dfrac{\text{環狀排列的總數 }(n-1)!}{\text{翻面後重合的排法 }2\text{ 種}}\)
用文字讀公式
① 把環狀排列的總數 \((n-1)!\),除以翻面後重合的 \(2\) 種所得的數 ,
② 就是 \(M\):項鍊排列的總數 (但限於 \(n\) 為 \(3\) 以上時)。
簡單範例
把 \(5\) 顆顏色不同的珠子串成一圈手鍊,做法有
5 顆珠子的項鍊排列總數 \(=\) \(\dfrac{\text{5 個的環狀排列 }24\text{ 種}}{\text{翻面後重合的 }2\text{ 種}}\)
\((5-1)! = 4! = 24\)
\(\dfrac{24}{2} = 12\)
思考重點
項鍊或手鍊放在桌上翻過來,左右就對調了。不論旋轉或翻面都是同一件東西,所以要把環狀排列再除以 \(2\)。也可以想成「旋轉有 \(n\) 種、翻面有 \(2\) 種,合計每 \(2n\) 種重複一次」,寫成 \(\dfrac{n!}{2n}\) 也一樣。 環狀排列和項鍊排列的分界,在於「能不能拿起來翻面」。圓桌的坐法,人坐在位子上,不可能把桌子翻過來,所以是環狀排列。手鍊可以拿在手上翻面,所以是項鍊排列。題目出現「圈」「項鍊」「手鍊」「念珠」時就要想到翻面,這樣記就不會搞混。 要注意的是 \(n = 1\) 和 \(n = 2\)。只有 1 顆或 2 顆珠子的圈,翻面後排法完全不變。「每 2 種重複一次」不成立,直接套公式會得到 \(\dfrac{1}{2}\) 種這種答案。正確答案兩者都是 \(1\) 種(這個計算機會自動分情形處理)。 \(n\) 為 \(3\) 以上時,每一種排法一定和「翻面後的排法」湊成一對,所以除以 \(2\) 就能正確計算。
特定 2 個相鄰的環狀排列 \(2 \times (n-2)!\)
圖示
數學寫法 (一般的數學式)
\(A\) \(=\) \((n-2)!\) \(\times\) \(2\)
文字寫法 (把符號換成文字的公式)
③ \(A\):2 個相鄰的排法總數 \(=\) ① \((n-2)!\):把一組當成 1 個時,\(n-1\) 個的環狀排列 \(\times\) ② 組內 2 個的順序 \(2\) 種
用文字讀公式
① 把 要相鄰的 2 個綁成一組後,\(n-1\) 個的環狀排列 \((n-2)!\)
② 乘上 組內 2 個的順序 \(2\) 種 ,
③ 就得到 \(A\):2 個相鄰的排法總數 。
簡單範例
\(6\) 個人圍著圓桌坐時,小明和小華相鄰的坐法是
2 人相鄰的坐法總數 \(=\) 2 人綁成一組後 5 個的環狀排列 \(4!\) \(\times\) 組內 2 人的順序 \(2\) 種
\((6-2)! = 4! = 24\)
\(24 \times 2 = 48\)
思考重點
遇到「一定要相鄰」的條件,標準做法是用繩子把這 2 個綁起來,當成一組。6 人中把 2 人綁成一組,排成圓形的就是「這一組+剩下的 4 人」共 5 個。5 個的環狀排列是 \((5-1)! = 4!\) 種。 最後,組內是「小明、小華」的順序,還是「小華、小明」的順序,有 \(2\) 種,要乘上去。綁成一組之後別忘了乘上組內的順序,這是最需要注意的地方。 只有 \(n = 2\) 是例外。只有 2 個人時一定相鄰,答案是 \(1\) 種,但直接套綁成一組的公式會得到 \(2 \times 0! = 2\) 種(這個計算機會自動分情形處理)。
特定 2 個不相鄰的環狀排列 \((n-1)! - 2 \times (n-2)!\)
圖示
數學寫法 (一般的數學式)
\(B\) \(=\) \((n-1)!\) \(-\) \((n-2)!\) \(\times\) \(2\)
文字寫法 (把符號換成文字的公式)
④ \(B\):2 個不相鄰的排法總數 \(=\) ① \((n-1)!\):沒有條件的環狀排列總數 \(-\) ② \((n-2)!\):把一組當成 1 個時,\(n-1\) 個的環狀排列 \(\times\) ③ 組內 2 個的順序 \(2\) 種
用文字讀公式
① 從 沒有條件的環狀排列總數 \((n-1)!\) 中,
② 減去 要相鄰的 2 個綁成一組後,\(n-1\) 個的環狀排列 \((n-2)!\)
③ 乘上 組內 2 個的順序 \(2\) 種 的數(=2 個相鄰的排法),
④ 就得到 \(B\):2 個不相鄰的排法總數 。
簡單範例
\(6\) 個人圍著圓桌坐時,小明和小華不相鄰的坐法是
2 人不相鄰的坐法總數 \(=\) 6 人的環狀排列 \(5!\) \(-\) 2 人綁成一組後 5 個的環狀排列 \(4!\) \(\times\) 組內 2 人的順序 \(2\) 種
\((6-1)! = 5! = 120\)
\(2 \times (6-2)! = 2 \times 24 = 48\)
\(120 - 48 = 72\)
思考重點
想直接數「不相鄰」,要分的情形會變多,很麻煩。所以改從「全部的排法」減去「會相鄰的排法」。數出想求條件的相反情形(餘事件),再從全體減掉,是標準的做法。 整理公式後也可以寫成 \((n-1)! - 2(n-2)! = (n-1)(n-2)! - 2(n-2)! = (n-3) \times (n-2)!\)。代入 \(n = 3\) 得到 \(0 \times 1! = 0\) 種。3 人的圓桌上任 2 人一定相鄰,可以確認 \(0\) 種確實正確。
排成圓形時,「旋轉後會重合的排法」算成同 1 種,所以把排成一列的 \(n!\) 種除以 \(n\),得到 \((n-1)!\) 種。像項鍊那樣翻面也視為相同時(項鍊排列),再除以 \(2\),得到 \(\dfrac{(n-1)!}{2}\) 種(只有 \(n\) 在 \(2\) 以下時例外,為 \(1\) 種)。

符號與用語解說

符號

\(n\) n 要排的全體個數。取自 number(數)的字首,常用來表示「個數」。本頁指圍著圓桌坐的人數,或串成一圈的珠子個數。
\(r\) r 從全體 \(n\) 個中選出、實際要排的個數。像 \(P^{n}_{r}\) 這樣和 \(n\) 一起使用,意思是「從 \(n\) 個中取 \(r\) 個」。
\(n!\) n 階乘 階乘。\(n! = n \times (n-1) \times \cdots \times 2 \times 1\),表示 \(n\) 個全部排成一列的排法數。據說用驚嘆號表示階乘的寫法,是法國數學家克拉姆(Kramp)在 1808 年開始使用的。另外規定 \(0! = 1\)。
\(P^{n}_{r}\) P n 取 r 排列。從 \(n\) 個中選 \(r\) 個排成一列的排法數,計算方式是 \(P^{n}_{r} = n \times (n-1) \times \cdots \times (n-r+1)\)。P 是 permutation(排列)的字首。本頁計算結果的算式寫成 \({}_{n}\mathrm{P}_{r}\)(例:\({}_{8}\mathrm{P}_{3}\)),意思相同。
\(N\) 大寫 N 本頁用來表示環狀排列總數的字母。是 number(數)字首的大寫,常用來代表「想求的個數」。
\(M\) M 本頁用來表示項鍊排列總數的字母。是 \(N\) 前一個英文字母,想表示和 \(N\) 不同的「另一個個數」時使用。
\(A,\ B\) A、B 本頁用 \(A\) 表示特定 2 個相鄰的排法總數,用 \(B\) 表示不相鄰的排法總數。用前面的英文字母代表「想求的特定數」是慣例。
\((n-1)!\) n 減 1 的階乘 表示環狀排列總數的式子。是把 \(n\) 個排成圓形時,去掉旋轉後重合的 \(n\) 種重複所得的結果。想成「固定 1 個,排剩下的 \(n-1\) 個」也會得到相同的式子。

用語

方法數 滿足某個條件的做法共有幾種的數。台灣在高一的「排列組合」學到。題目問「有幾種?」時,就是在求方法數。
排列 把幾個東西考慮順序排起來,或指這種排法的數。排成一列的情形特別稱為直線排列,用 \(P^{n}_{r}\) 來數。
直線排列 排成橫的一列(直線)的一般排列。想和環狀排列區分時這樣稱呼。從左邊依序排,有頭有尾,錯開位置就變成不同的排法。
環狀排列 把東西排成圓形(一圈)的排法。規定旋轉後重合的排法算同 1 種,\(n\) 個就有 \((n-1)!\) 種。
項鍊排列 環狀排列之中,把翻面後重合的排法也算成同 1 種的排法。用來數像項鍊、手鍊這種可以翻面的圈,\(n\) 在 \(3\) 以上時有 \(\dfrac{(n-1)!}{2}\) 種。
階乘 從 \(1\) 到 \(n\) 的整數全部相乘的數(符號是 \(n!\))。和 \(n\) 個東西排成一列的排法數相同,\(n\) 一變大就會急遽增加(\(10! = 3{,}628{,}800\))。
旋轉後重合 把圈上的排法直接轉動,就和另一種排法完全相同。環狀排列不區分這樣重合的排法,算成同 1 種。轉一圈會產生 \(n\) 種重複。
翻面後重合 把圈翻過來(像照鏡子一樣左右顛倒)後,和另一種排法相同。項鍊排列把這種情形也算成同 1 種。
綁成一組 把有「一定相鄰」條件的東西用繩子綁起來,當成 1 個來處理的想法(綑綁法)。全體個數會少 1,最後再乘上組內的順序數。
餘事件 某個條件不發生的所有情形,寫成 \(A'\)。像「不相鄰」這種不容易直接數的條件,就從全體減去「相鄰」的情形來求。
重複計算 把同一個情形數了 2 次以上。環狀排列會把同一個圈的排法各數 \(n\) 次,所以最後要除以 \(n\),去掉重複。
固定一個 環狀排列的標準想法。先決定某 1 個人的位置,就不能再靠旋轉讓排法重合,所以就和把剩下的 \(n-1\) 個排成一列相同。
乘法原理 「A 的決定方式有 \(a\) 種,每一種之下 B 的決定方式各有 \(b\) 種」,全部就有 \(a \times b\) 種,這是計數的規則。把綁成一組後的環狀排列乘上順序的 \(2\),用的也是這個原理。

建議先了解的基礎知識

為了讓您「真正理解意義」地使用這個頁面的計算,這裡整理了建議事先理解的基礎知識。
卡住的時候,回到這裡的內容複習,是最快的捷徑。

方法數的基礎(高一,15~16 歲)
  • 會用乘法原理(A 的決定方式有 \(a\) 種,每一種之下 B 的決定方式各有 \(b\) 種,全部就有 \(a \times b\) 種)
  • 會畫樹狀圖,數量小時能實際全部寫出來數(可以用來自己確認公式是否正確)
排列與階乘(高一,15~16 歲)
  • 知道 \(n!\)(階乘)是 \(n\) 個全部排成一列的排法數(例:\(4! = 24\))
  • 會計算 \(P^{n}_{r} = n \times (n-1) \times \cdots \times (n-r+1)\)(例:\(P^{8}_{3} = 8 \times 7 \times 6 = 336\))
  • 知道規定 \(0! = 1\)
用除法去掉重複的想法(國小三~五年級,8~11 歲)
  • 有這樣的感覺:同一個東西各數了 \(n\) 次時,除以 \(n\) 就能回到原來的個數(例:有 24 隻手套,2 隻一雙,所以 24 ÷ 2 = 12 雙)
  • 知道除法是求「每幾個一組,共有幾組」的計算
圖形的旋轉與對稱(國小高年級~國中,10~15 歲)
  • 能把旋轉後會重合的圖形視為「相同的形狀」(環狀排列的「旋轉」就是這個)
  • 能想像像照鏡子一樣左右顛倒的形狀(線對稱)(項鍊排列的「翻面」就是這個)
餘事件(高一,15~16 歲)
  • 知道「不是~」的方法數,可以從全體減去「是~」的方法數來求
  • 遇到像「不相鄰」這種不容易直接數的條件,能想到先數相反的條件

用 Excel 計算的方法

把下方表格整個複製,貼到 Excel 的 A1 儲存格就能直接使用。
求「環狀排列 (n−1)!」的表格
要排的個數 n 8
環狀排列總數 (n−1)! =FACT(B1-1)
求「從 n 個中選 r 個排成圓形的環狀排列」的表格
全體個數 n 8
排成圓形的個數 r 3
排成一列的排法 nPr =PERMUT(B1,B2)
環狀排列總數 nPr÷r =B3/B2
求「項鍊排列 (n−1)!÷2」的表格
要排的個數 n 5
項鍊排列總數 =IF(B1<=2,1,FACT(B1-1)/2)
求「特定 2 個相鄰、不相鄰的環狀排列」的表格
要排的個數 n 6
沒有條件的環狀排列 (n−1)! =FACT(B1-1)
2 個相鄰 2×(n−2)! =2*FACT(B1-2)
2 個不相鄰 =B2-B3
貼上後,上面的列(個數)就是輸入的儲存格,下面的列會自動算出結果。
FACT 是計算階乘(n!)的函數,PERMUT 是計算排列(nPr)的函數。
第 1 個表格是 8 人圍圓桌的坐法,答案是 5040。
第 2 個表格是從 8 人中選 3 人圍圓桌的坐法,nPr 是 336,除以 r 得到 112。
第 3 個表格的 IF,是為了在 n 為 2 以下時不除以 2 的分情形處理。n 輸入 5 會得到 12。
第 4 個表格是 6 人圍圓桌的例子,沒有條件為 120,相鄰為 48,不相鄰為 72。

用 Google 試算表計算的方法

把下方表格整個複製,貼到 Google 試算表的 A1 儲存格就能直接使用。
求「環狀排列 (n−1)!」的表格
要排的個數 n 8
環狀排列總數 (n−1)! =FACT(B1-1)
求「從 n 個中選 r 個排成圓形的環狀排列」的表格
全體個數 n 8
排成圓形的個數 r 3
排成一列的排法 nPr =PERMUT(B1,B2)
環狀排列總數 nPr÷r =B3/B2
求「項鍊排列 (n−1)!÷2」的表格
要排的個數 n 5
項鍊排列總數 =IF(B1<=2,1,FACT(B1-1)/2)
求「特定 2 個相鄰、不相鄰的環狀排列」的表格
要排的個數 n 6
沒有條件的環狀排列 (n−1)! =FACT(B1-1)
2 個相鄰 2×(n−2)! =2*FACT(B1-2)
2 個不相鄰 =B2-B3
可以直接使用和 Excel 相同的公式(FACT、PERMUT、IF)。把表格整個複製、貼到 A1 儲存格,再把個數改成自己的數值即可。

用 Python 計算的方法

from math import factorial, perm

n = 8   # 要排的個數
r = 3   # 排成圓形的個數(從 n 個中選取時)

# 環狀排列:n 個全部排成圓形
circular = factorial(n - 1)

# 環狀排列:從 n 個中選 r 個排成圓形
circular_select = perm(n, r) // r

# 項鍊排列:翻面後重合的視為相同
# n 為 1 或 2 時,翻面後排法也不變,所以不除以 2,為 1 種
necklace = 1 if n <= 2 else factorial(n - 1) // 2

# 特定 2 個相鄰/不相鄰的環狀排列(n 為 3 以上時)
adjacent = 2 * factorial(n - 2)
not_adjacent = factorial(n - 1) - adjacent

print(f"環狀排列:{circular}")
print(f"從 {n} 個中選 {r} 個的環狀排列:{circular_select}")
print(f"項鍊排列:{necklace}")
print(f"相鄰:{adjacent} 不相鄰:{not_adjacent}")
只用標準函式庫的 math 模組就能計算(perm 需要 Python 3.8 以上)。整數相除時,用不會變成小數的「//」是訣竅。執行這個例子,會顯示環狀排列 5040、從 8 個中選 3 個的環狀排列 112、項鍊排列 2520、相鄰 1440、不相鄰 3600。把 n 和 r 改掉後執行即可。

用 LaTeX 等數學式語言的寫法(可直接複製)

環狀排列 \((n-1)!\)(\(n\) 個全部排成圓形)
N = n! ÷ n = (n−1)!
N = \frac{n!}{n} = (n-1)!
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
  <mrow>
    <mi>N</mi>
    <mo>=</mo>
    <mfrac>
      <mrow><mi>n</mi><mo>!</mo></mrow>
      <mi>n</mi>
    </mfrac>
    <mo>=</mo>
    <mo>(</mo><mi>n</mi><mo>&#x2212;</mo><mn>1</mn><mo>)</mo><mo>!</mo>
  </mrow>
</math>
N = (n!)/n = (n-1)!
N = (n - 1)!
N := (n-1)!;
N = factorial(n-1);
N = n!/n = (n-1)!
環狀排列 \(\dfrac{P^{n}_{r}}{r}\)(從 \(n\) 個中選 \(r\) 個排成圓形)
N = Pⁿᵣ ÷ r
N = \frac{P^{n}_{r}}{r}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
  <mrow>
    <mi>N</mi>
    <mo>=</mo>
    <mfrac>
      <mrow><msubsup><mi>P</mi><mi>r</mi><mi>n</mi></msubsup></mrow>
      <mi>r</mi>
    </mfrac>
  </mrow>
</math>
N = (P_r^n)/r
N = (n!/(n - r)!)/r
N := numbperm(n, r)/r;
N = nchoosek(n,r)*factorial(r)/r;
N = P_r^n/r
項鍊排列 \(\dfrac{(n-1)!}{2}\)(翻面後重合的視為相同)
M = (n−1)! ÷ 2
M = \frac{(n-1)!}{2}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
  <mrow>
    <mi>M</mi>
    <mo>=</mo>
    <mfrac>
      <mrow><mo>(</mo><mi>n</mi><mo>&#x2212;</mo><mn>1</mn><mo>)</mo><mo>!</mo></mrow>
      <mn>2</mn>
    </mfrac>
  </mrow>
</math>
M = ((n-1)!)/2
M = (n - 1)!/2
M := (n-1)!/2;
M = factorial(n-1)/2;
M = (n-1)!/2
特定 2 個相鄰的環狀排列 \(2 \times (n-2)!\)
A = 2 × (n−2)!
A = 2 \times (n-2)!
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
  <mrow>
    <mi>A</mi>
    <mo>=</mo>
    <mn>2</mn>
    <mo>&#xD7;</mo>
    <mo>(</mo><mi>n</mi><mo>&#x2212;</mo><mn>2</mn><mo>)</mo><mo>!</mo>
  </mrow>
</math>
A = 2 * (n-2)!
A = 2 (n - 2)!
A := 2*(n-2)!;
A = 2*factorial(n-2);
A = 2(n-2)!
特定 2 個不相鄰的環狀排列 \((n-1)! - 2 \times (n-2)!\)
B = (n−1)! − 2 × (n−2)!
B = (n-1)! - 2 \times (n-2)!
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
  <mrow>
    <mi>B</mi>
    <mo>=</mo>
    <mo>(</mo><mi>n</mi><mo>&#x2212;</mo><mn>1</mn><mo>)</mo><mo>!</mo>
    <mo>&#x2212;</mo>
    <mn>2</mn>
    <mo>&#xD7;</mo>
    <mo>(</mo><mi>n</mi><mo>&#x2212;</mo><mn>2</mn><mo>)</mo><mo>!</mo>
  </mrow>
</math>
B = (n-1)! - 2 * (n-2)!
B = (n - 1)! - 2 (n - 2)!
B := (n-1)! - 2*(n-2)!;
B = factorial(n-1) - 2*factorial(n-2);
B = (n-1)! - 2(n-2)!

請 ChatGPT  幫忙計算的方法

你是數學(方法數)的計算助理。請務必實際執行 Python 程式碼來進行下列計算,並只以執行結果的數值作為回答的依據(請不要用心算或猜測回答)。

關於 8 個人圍著圓桌坐的坐法,請求出下列 4 項。
1. 8 人全部的環狀排列(旋轉後重合的坐法算同 1 種)
2. 從 8 人中選 3 人,坐在 3 人座圓桌的坐法
3. 8 顆珠子串成一圈的項鍊排列(旋轉或翻面後相同的算 1 種)
4. 8 人的圓桌中,特定 2 人相鄰的坐法與不相鄰的坐法

請在 Python 中使用標準函式庫的 math 模組(factorial、perm)精確計算,並列出使用的公式和執行結果的數值。同時也請說明每個公式為什麼是這個形式。

使用方法
  1. 1
    輸入數值
    在輸入欄中輸入要計算的數值
  2. 2
    計算
    按下「計算」按鈕
  3. 3
    查看結果
    計算結果會立即顯示。計算的思路和公式的解說,也都能在同一個頁面查看
  DataChef 的特色
簡單又免費
免費且無使用次數限制
不需專業知識,操作直覺又簡單
免註冊會員
開啟頁面即可立即使用
無須登錄任何個人資料
安全又安心
通訊全程高度加密
按下「下載」後自動刪除檔案
高速
顯示與轉換都快速順暢,毫無等待壓力
無浮水印
沒有浮水印
無須標註來源出處
可商業使用
可免費用於商業用途
亦無須事先取得商用授權