此條
目 め 介 かい 紹的
是 ぜ 數學 すうがく 中 ちゅう 的 てき 置換 ちかん 。
關 せき 於化
學 がく 中 ちゅう 的 てき 置換 ちかん ,請見「
置換 ちかん 反應 はんのう 」。
「Permutation」的 てき 各地 かくち 常用 じょうよう 名稱 めいしょう 中國 ちゅうごく 大陸 たいりく 排列 はいれつ 臺灣 たいわん 排列 はいれつ 、置換 ちかん 港 みなと 澳排列 はいれつ 日本 にっぽん 置換 ちかん
P(3,3)=6
排列 はいれつ (英語 えいご :Permutation )或 ある 置換 ちかん 是 ぜ 將 しょう 相 しょう 異物 いぶつ 件 けん 或 ある 符號 ふごう 根據 こんきょ 確定 かくてい 的 てき 順序 じゅんじょ 重 じゅう 排 はい 。每 まい 個 こ 順序 じゅんじょ 都 と 稱 しょう 作 さく 一 いち 個 こ 置換 ちかん 或 ある 排列 はいれつ [ 注 ちゅう 1] 。例 れい 如,從 したがえ 一 いち 到 いた 六 ろく 的 てき 數字 すうじ 有 ゆう 720種 しゅ 排列 はいれつ ,對應 たいおう 於由這些數字 すうじ 組成 そせい 的 てき 所有 しょゆう 不 ふ 重複 じゅうふく 亦 また 不 ふ 闕漏的 てき 序列 じょれつ ,例 れい 如"4, 5, 6, 1, 2, 3" 與 あずか 1, 3, 5, 2, 4, 6 。
置換 ちかん (排列 はいれつ )的 てき 廣義 こうぎ 概念 がいねん 在 ざい 不同 ふどう 語 ご 境 さかい 下 か 有 ゆう 不同 ふどう 的 てき 形式 けいしき 定義 ていぎ :
在 ざい 集合 しゅうごう 論 ろん 中 ちゅう ,一 いち 個 こ 集合 しゅうごう 的 てき 置換 ちかん 是 ぜ 從 したがえ 該集合 しゅうごう 映 うつ 至 いたり 自身 じしん 的 てき 對 たい 射 しゃ ;在 ざい 有限 ゆうげん 集 しゅう 的 てき 情況 じょうきょう ,便 びん 與 あずか 上述 じょうじゅつ 定義 ていぎ 一致 いっち 。
在 ざい 組合 くみあい 數學 すうがく 中 なか ,置換 ちかん 一詞的傳統意義是一個有序序列,其中元素 げんそ 不 ふ 重複 じゅうふく ,但 ただし 可能 かのう 有 ゆう 闕漏。例 れい 如1,2,4,3 可 か 以稱為 ため 1,2,3,4,5,6 的 てき 一 いち 個 こ 置換 ちかん ,但 ただし 是 ぜ 其中不 ふ 含5,6 。此時通常 つうじょう 會 かい 標 しめぎ 明 あきら 為 ため 「從 したがえ n個 こ 對象 たいしょう 取 と r個 こ 對象 たいしょう 的 てき 置換 ちかん 」。
一 いち 個 こ 集合 しゅうごう 置換 ちかん 為 ため 從 したがえ 該集合 しゅうごう 映 うつ 至 いたり 自身 じしん 的 てき 對 たい 射 しゃ 函數 かんすう
σ しぐま
:
S
⟶
∼
S
.
{\displaystyle \sigma :S\ {\stackrel {\sim }{\longrightarrow }}\ S.}
恆等 こうとう 置換 ちかん 的 てき 定義 ていぎ 為 ため 置換 ちかん
σ しぐま
{\displaystyle \sigma }
使 つかい 得 とく 對 たい 所有 しょゆう
x
∈
X
{\displaystyle x\in X}
,
σ しぐま
(
x
)
=
x
{\displaystyle \sigma (x)=x}
。
所有 しょゆう 關 せき 於
n
{\displaystyle n}
個 こ 元素 げんそ 的 てき 集合 しゅうごう
S
{\displaystyle S}
的 てき 置換 ちかん 組成 そせい 的 てき 集合 しゅうごう 構成 こうせい 對稱 たいしょう 群 ぐん
S
n
{\displaystyle S_{n}}
,其群 ぐん 運算 うんざん 為 ため 函數 かんすう 的 てき 複 ふく 合 あい 。因 よし 此兩個 りゃんこ 置換 ちかん ,
σ しぐま
{\displaystyle \sigma }
和 わ
τ たう
{\displaystyle \tau }
的 てき 積 せき
π ぱい
=
σ しぐま
τ たう
{\displaystyle \pi =\sigma \tau }
的 てき 定義 ていぎ 為 ため
π ぱい
(
i
)
=
σ しぐま
(
ρ ろー
(
i
)
)
{\displaystyle \pi (i)=\sigma (\rho (i))}
兩個 りゃんこ 置換 ちかん 的 てき 複 ふく 合 あい 一般 いっぱん 不滿足 ふまんぞく 交換 こうかん 律 りつ :
τ たう
σ しぐま
≠
σ しぐま
τ たう
{\displaystyle \tau \sigma \neq \sigma \tau }
。
此節使用 しよう 置換 ちかん 的 てき 傳統 でんとう 定義 ていぎ 。從 したがえ
n
{\displaystyle n}
個 こ 相 しょう 異 い 元素 げんそ 中 ちゅう 取出 とりで
k
{\displaystyle k}
個 こ 元素 げんそ ,
k
{\displaystyle k}
個 こ 元素 げんそ 的 てき 排列 はいれつ 數量 すうりょう 為 ため :
P
k
n
=
n
!
(
n
−
k
)
!
{\displaystyle P_{k}^{n}={\frac {n!}{(n-k)!}}}
其中P 意 い 為 ため Permutation(排列 はいれつ ),! 表示 ひょうじ 階 かい 乘 じょう 運算 うんざん 。
以賽 さい 馬 ば 為 ため 例 れい ,有 ゆう 8匹 ひき 馬 ば 參加 さんか 比 ひ 賽 さい ,玩家需要 じゅよう 在 ざい 彩 いろどり 票 ひょう 上 じょう 填 はま 入 にゅう 前 まえ 三勝出的馬匹的號碼,從 したがえ 8匹 ひき 馬 ば 中 ちゅう 取出 とりで 3匹 ひき 馬 ば 來 らい 排 はい 前 まえ 3名 めい ,排列 はいれつ 數量 すうりょう 為 ため :
P
3
8
=
8
!
(
8
−
3
)
!
=
336
{\displaystyle P_{3}^{8}={\frac {8!}{(8-3)!}}=336}
因 いん 為 ため 一 いち 共存 きょうぞん 在 ざい 336種 しゅ 可能 かのう 性 せい ,因 いん 此玩家 か 在 ざい 一次填入中中獎的概率應該是:
P
=
1
336
=
0.00298
{\displaystyle P={\frac {1}{336}}=0.00298}
不 ふ 過 か ,中國 ちゅうごく 大陸 たいりく 的 てき 教科書 きょうかしょ 則 そく 是 これ 把 わ 從 したがえ n取 と k的 てき 情況 じょうきょう 記 き 作 さく
P
n
k
{\displaystyle P_{n}^{k}}
或 ある
A
n
k
{\displaystyle A_{n}^{k}}
(A代表 だいひょう Arrangement,即 そく 排列 はいれつ )。[ 1]
上面 うわつら 的 てき 例 れい 子 こ 是 ぜ 建立 こんりゅう 在 ざい 取出 とりで 元素 げんそ 不 ふ 重複 じゅうふく 出現 しゅつげん 狀 じょう 況 きょう 。
從 したがえ
n
{\displaystyle n}
個 こ 元素 げんそ 中 ちゅう 取出 とりで
k
{\displaystyle k}
個 こ 元素 げんそ ,
k
{\displaystyle k}
個 こ 元素 げんそ 可 か 以重複 じゅうふく 出現 しゅつげん ,這排列 はいれつ 數量 すうりょう 為 ため :
U
k
n
=
n
k
{\displaystyle U_{k}^{n}=n^{k}}
[ 2]
以四 よん 星 ほし 彩 あや 為 ため 例 れい ,10個 こ 數字 すうじ 取 と 4個 こ 數字 すうじ ,因 いん 可能 かのう 重複 じゅうふく 所以 ゆえん 排列 はいれつ 數量 すうりょう 為 ため :
U
4
10
=
10
4
=
10000
{\displaystyle U_{4}^{10}=10^{4}=10000}
這時的 てき 一次性添入中獎的概率就應該是:
P
=
1
10000
=
0.0001
{\displaystyle P={\frac {1}{10000}}=0.0001}
在 ざい 集合 しゅうごう 論 ろん 與 あずか 抽象 ちゅうしょう 代數 だいすう 等 とう 領域 りょういき 中 ちゅう ,「置換 ちかん 」一 いち 詞 し 被 ひ 保留 ほりゅう 為 ため 集合 しゅうごう (通常 つうじょう 是 ぜ 有限 ゆうげん 集 しゅう )到 いた 自身 じしん 的 てき 對 たい 射 しゃ 的 てき 一 いち 個 こ 稱呼 しょうこ 。例 れい 如對於從一到十的數字構成的集合,其置換 ちかん 將 はた 是 これ 從 したがえ 集合 しゅうごう
{
1
,
…
,
10
}
{\displaystyle \{1,\ldots ,10\}}
到 いた 自身 じしん 的 てき 對 たい 射 しゃ 。因 よし 此,置換 ちかん 是 ぜ 擁 よう 有 ゆう 相 しょう 同 どう 定義 ていぎ 域 いき 與 あずか 對應 たいおう 域 いき 的 てき 函數 かんすう ,且其為 ため 對 たい 射的 しゃてき 。一個集合上的置換在函數合成運算下構成一個群 ぐん ,稱 たたえ 為 ため 對稱 たいしょう 群 ぐん 或 ある 置換 ちかん 群 ぐん 。
以下 いか 僅考慮 こうりょ 有限 ゆうげん 集 しゅう 上 じょう 的 てき 置換 ちかん (視 み 為 ため 對 たい 射 しゃ ),由 ゆかり 於
n
{\displaystyle n}
個 こ 元素 げんそ 的 てき 有限 ゆうげん 集 しゅう 可 か 以一一 いち 對應 たいおう 到 いた 集合 しゅうごう
{
1
,
…
,
n
}
{\displaystyle \{1,\ldots ,n\}}
,有限 ゆうげん 集 しゅう 的 てき 置換 ちかん 可 か 以化約 やく 到 いた 形 かたち 如 {1, ..., n} 的 てき 集合 しゅうごう 之 の 置換 ちかん 。此時有 ゆう 兩 りょう 種 たね 表示法 ひょうじほう 。
第 だい 一 いち ,利用 りよう 矩 のり 陣 じん 符號 ふごう 將 しょう 自然 しぜん 排 はい 序 じょ 寫 うつし 在 ざい 第 だい 一 いち 列 れつ ,而將置換 ちかん 後 ご 的 てき 排 はい 序 じょ 寫 うつし 在 ざい 第 だい 二 に 列 れつ 。例 れい 如:
[
1
2
3
4
5
2
5
4
3
1
]
{\displaystyle {\begin{bmatrix}1&2&3&4&5\\2&5&4&3&1\end{bmatrix}}}
表示 ひょうじ 集合 しゅうごう {1,2,3,4,5} 上 じょう 的 てき 置換 ちかん
s
:
s
(
1
)
=
2
,
s
(
2
)
=
5
,
s
(
3
)
=
4
,
s
(
4
)
=
3
,
s
(
5
)
=
1
{\displaystyle s:s(1)=2,s(2)=5,s(3)=4,s(4)=3,s(5)=1}
。
第 だい 二 に ,藉由置換 ちかん 的 てき 相 しょう 繼 つぎ 作用 さよう 描述,這被稱 しょう 為 ため 「輪 わ 換 かわ 分解 ぶんかい 」。分解 ぶんかい 方式 ほうしき 如下:固定 こてい 置換 ちかん
s
{\displaystyle s}
。對 たい 任 にん 一 いち 元素 げんそ
x
{\displaystyle x}
,由 ゆかり 於集合 しゅうごう 有限 ゆうげん 而
s
{\displaystyle s}
是 ぜ 對 たい 射 しゃ ,必存在 そんざい 正 せい 整數 せいすう
N
{\displaystyle N}
使 つかい 得 とく
s
N
(
x
)
=
x
{\displaystyle s^{N}(x)=x}
,故 こ 可 か 將 しょう 置換 ちかん
s
{\displaystyle s}
對 たい
x
{\displaystyle x}
的 まと 相 しょう 繼 つぎ 作用 さよう 表 ひょう 成 なり
(
x
s
(
x
)
s
2
(
x
)
⋯
s
m
−
1
(
x
)
)
{\displaystyle (x\;s(x)\;s^{2}(x)\cdots s^{m-1}(x))}
,其中
m
{\displaystyle m}
是 ぜ 滿足 まんぞく
s
m
(
x
)
=
x
{\displaystyle s^{m}(x)=x}
的 てき 最小 さいしょう 正 せい 整數 せいすう 。
稱 しょう 上述 じょうじゅつ 表 ひょう 法 ほう 為 ため
x
{\displaystyle x}
在 ざい
s
{\displaystyle s}
下 した 的 てき 輪 わ 換 かわ ,
m
{\displaystyle m}
稱 しょう 為 ため 輪 わ 換 かわ 的 てき 長 なが 度 たび 。我 わが 們在此將輪 わ 換 かわ 視 し 作 さく 環狀 かんじょう 排列 はいれつ ,例 れい 如
(
a
1
a
2
a
3
⋯
a
m
)
{\displaystyle (a_{1}\;a_{2}\;a_{3}\cdots a_{m})}
與 あずか
(
a
m
a
1
a
2
⋯
a
m
−
1
)
{\displaystyle (a_{m}\;a_{1}\;a_{2}\cdots a_{m-1})}
是 ぜ 同 どう 一 いち 個 こ 輪 わ 換 かわ 。由 よし 此可知 かち
x
{\displaystyle x}
在 ざい
s
{\displaystyle s}
下 した 的 てき 輪 わ 換 かわ 只 ただ 決定 けってい 於
x
{\displaystyle x}
在 ざい
s
{\displaystyle s}
作用 さよう 下 か 的 てき 軌道 きどう ,於是,任 にん 兩個 りゃんこ 元素 げんそ
x
,
y
{\displaystyle x,y}
或 ある 給 きゅう 出 で 同 どう 一 いち 個 こ 輪 わ 換 かわ ,或 ある 給 きゅう 出 で 不 ふ 交的輪 わ 換 かわ 。
我 わが 們將輪 わ 換 かわ
(
x
1
⋯
x
m
)
{\displaystyle (x_{1}\;\cdots x_{m})}
理解 りかい 為 ため 一類 いちるい 特殊 とくしゅ 的 てき 置換 ちかん [ 注 ちゅう 2] :僅須定義 ていぎ 置換 ちかん
s
{\displaystyle s}
為 ため
s
:
x
1
↦
x
2
,
…
,
x
m
−
1
↦
x
m
,
x
m
↦
x
1
{\displaystyle s:x_{1}\mapsto x_{2},\ldots ,x_{m-1}\mapsto x_{m},x_{m}\mapsto x_{1}}
,而在其它元素 げんそ 上 じょう 定義 ていぎ 為 ため 恆等 こうとう 映 うつ 射 い 。不 ふ 交的輪 わ 換 かわ 在 ざい 函數 かんすう 合成 ごうせい 的 てき 意義 いぎ 下 か 可 か 相 しょう 交換 こうかん 。
因 いん 此我們可以將集合 しゅうごう {1, ..., n} 對 たい 一置換分解成不交輪換的合成,此分解 ぶんかい 若 わか 不 ふ 計 けい 順序 じゅんじょ 則 そく 是 ぜ 唯一 ゆいいつ 的 てき 。例 れい 如前一 いち 個 こ 例 れい 子 こ 的 てき
s
{\displaystyle s}
就對應 おう 到 いた (1 2 5) (3 4) 或 ある (3 4) (1 2 5)。
輪 わ 換 かわ 一 いち 是 ぜ 種 しゅ 特殊 とくしゅ 的 てき 置換 ちかん 。
如果給 きゅう 定 じょう
f
:
X
→
X
{\displaystyle f:X\rightarrow X}
是 これ
X
{\displaystyle X}
上 うえ 的 てき 一 いち 個 こ 置換 ちかん ,
A
{\displaystyle A}
為 ため
X
{\displaystyle X}
上 うえ 的 てき 一 いち 個 こ 子 こ 集 しゅう 。
若 わか 有 ゆう
∃
A
⊂
X
,
A
=
{
x
1
,
x
2
,
⋯
,
x
l
}
{\displaystyle \exists A\subset X,A=\{x_{1},x_{2},\cdots ,x_{l}\}}
{
f
(
x
1
)
=
x
2
,
f
(
x
2
)
=
x
3
,
⋯
,
f
(
x
l
)
=
x
1
f
(
x
)
=
x
,
x
∉
A
{\displaystyle {\begin{cases}f(x_{1})=x_{2},f(x_{2})=x_{3},\cdots ,f(x_{l})=x_{1}\\f(x)=x,x\not \in A\end{cases}}}
則 のり 稱 しょう
f
{\displaystyle f}
為 ため 一 いち 個 こ 輪 わ 換 かわ 。
l
{\displaystyle l}
為 ため 輪 わ 換 かわ 的 てき 長 ちょう 度 ど 。
在 ざい 上 うえ 節 ぶし 的 てき 置換 ちかん 表 ひょう 法 ほう 中 ちゅう ,長 ちょう 度 ど 等 とう 於二的 てき 環狀 かんじょう 置換 ちかん 稱 たたえ 為 ため 換 かわ 位 くらい ,這種環狀 かんじょう 置換 ちかん
(
x
y
)
{\displaystyle (x\;y)}
不 ふ 外 そと 是 ぜ 將 はた 元素 げんそ
x
,
y
{\displaystyle x,y}
交換 こうかん ,並 なみ 保持 ほじ 其它元素 げんそ 不變 ふへん 。對稱 たいしょう 群 ぐん 可 か 以由換 かわ 位 くらい 生成 せいせい 。
由 よし 於環狀 じょう 置換 ちかん 長 ちょう 度 ど 為 ため
l
{\displaystyle l}
的 てき 置換 ちかん
C
{\displaystyle C}
可 か 分解 ぶんかい 為 ため 最少 さいしょう
k
=
l
−
1
{\displaystyle k=l-1}
個 こ 換 かわ 位 くらい ,若 わか
k
{\displaystyle k}
為 ため 偶數 ぐうすう ,則 のり
C
{\displaystyle C}
為 ため 偶換位 い ,否 いや 則 のり
C
{\displaystyle C}
為 ため 奇 き 換 かわ 位 くらい 。即 そく 環狀 かんじょう 置換 ちかん 的 てき 長 ちょう 度 ど 為 ため 奇數 きすう ,該置換 ちかん 為 ため 偶換位 い ;環狀 かんじょう 置換 ちかん 的 てき 長 ちょう 度 ど 為 ため 偶數 ぐうすう ,該置換 ちかん 為 ため 奇 き 換 かわ 位 くらい 。
由 よし 此可定義 ていぎ 任 にん 一 いち 置換 ちかん 的 てき 奇偶 きぐう 性 せい ,並 なみ 可 か 證明 しょうめい :一個置換是偶換位的充要條件是它可以由偶數個換位生成。偶換位 い 在 ざい 置換 ちかん 群 ぐん 中 ちゅう 構成 こうせい 一 いち 個 こ 正規 せいき 子 こ 群 ぐん ,稱 たたえ 為 ため 交錯 こうさく 群 ぐん 。
某 ぼう 些舊課 か 本 ほん 將 しょう 置換 ちかん 視 し 為 ため 變量 へんりょう 值的賦 ふ 值 。在 ざい 計算 けいさん 機 き 科學 かがく 中 なか ,這就是 ぜ 將 はた 值
1, 2, ..., n
賦 ふ 予 よ 變量 へんりょう
x 1 , x 2 , ..., x n
的 てき 賦 ふ 值運算 うんざん 子 こ ,並 なみ 要求 ようきゅう 每 ごと 個 こ 值只能 のう 賦 ふ 予 よ 一 いち 個 こ 變量 へんりょう 。
賦 ふ 值/代入 だいにゅう 的 てき 差別 さべつ 表明 ひょうめい 函數 かんすう 式 しき 編 へん 程 ほど 與 あずか 指令 しれい 式 しき 編 へん 程 ほど 之 これ 差異 さい 。純粹 じゅんすい 的 てき 函數 かんすう 式 しき 編 へん 程 ほど 並 なみ 不 ふ 提供 ていきょう 賦 ふ 值機制 せい 。現今 げんこん 數學 すうがく 的 てき 慣例 かんれい 是 ぜ 將 しょう 置換 ちかん 看 み 作 さく 函數 かんすう ,其間運算 うんざん 看 み 作 さく 函數 かんすう 合成 ごうせい ,函數 かんすう 式 しき 編 へん 程 ほど 也類似 るいじ 。就賦值語言 げん 的 てき 觀點 かんてん ,一個代入是將給定的值「同時 どうじ 」重 じゅう 排 はい ,這是個 こ 有名 ゆうめい 的 てき 問題 もんだい 。
(2,5,1,4,3,6)的 てき 置換 ちかん 圖 ず
取 と 一 いち 個 こ 無 な 向 むかい 圖 ず G ,將 しょう 圖 ず G 的 てき n 個 こ 頂點 ちょうてん 標記 ひょうき v 1 ,...,v n ,對應 たいおう 一 いち 個 こ 置換 ちかん ( s(1) s(2) ... s(n ) ),當 とう 且僅當 とう s(i ) < s(j ) 而 i > j ,則 のり 圖 ず 的 てき v i 和 わ v j 相 あい 連 れん ,這樣的 てき 圖 ず 稱 しょう 為 ため 置換 ちかん 圖 ず 。
置換 ちかん 圖 ず 的 てき 補 ほ 圖 ず 必是置換 ちかん 圖 ず 。
多數 たすう 計算 けいさん 器 き 都 みやこ 有 ゆう 個 こ 計算 けいさん 置換 ちかん 數 すう 的 てき nPr 鍵 かぎ 。然 しか 而此鍵 かぎ 在 ざい 一些最先進的桌上型機種中卻被隱藏了。例 れい 如:在 ざい TI-83 中 ちゅう ,按 MATH、三 さん 次 じ 右 みぎ 鍵 かぎ 、再 さい 按二。在 ざい 卡西歐 せいおう 的 てき 圖形 ずけい 計算 けいさん 機 き 中 ちゅう ,按 OPTN,一 いち 次 じ 右 みぎ 鍵 かぎ (F6)、PROB(F3)、nPr(F2)。
多數 たすう 試算 しさん 表 ひょう 軟件都 と 有 ゆう 函 はこ 式 しき PERMUT(Number ,Number chosen ),用 よう 以計算 けいさん 置換 ちかん 。Number 是 ぜ 描述物件 ぶっけん 數量 すうりょう 的 てき 一 いち 個 こ 整數 せいすう ,Number chosen 是 ぜ 描述每 ごと 個 こ 置換 ちかん 中 ちゅう 所 しょ 取 と 物件 ぶっけん 數 すう 的 てき 整數 せいすう 。
#include <iostream>
using namespace std ;
bool arrsame ( int * arr , int len , int num ) {
int i ;
for ( i = 0 ; i < len ; i ++ )
if ( arr [ i ] == num )
break ;
return i != len ;
}
bool next_perm ( int * perm , const int k , const int n ) {
int i = k - 1 ;
do
perm [ i ] ++ ;
while ( arrsame ( perm , i , perm [ i ]) || ( perm [ i ] >= n && i -- ));
if ( perm [ 0 ] >= n )
return 0 ;
for ( int num = 0 , seat = i + 1 ; seat < k ; num ++ )
if ( ! arrsame ( perm , i + 1 , num ))
perm [ seat ++ ] = num ;
return 1 ;
}
int main () {
int n , k ;
cout << "perm(n,k):" << endl ;
cin >> n >> k ;
if ( n < k || k <= 0 )
return 0 ;
int * perm = new int [ k ];
for ( int i = 0 ; i < k ; i ++ )
perm [ i ] = i ;
do
for ( int i = 0 ; i < k ; cout << (( ++ i < k ) ? ',' : '\n' ))
cout << perm [ i ] + 1 ;
while ( next_perm ( perm , k , n ));
delete [] perm ;
return 0 ;
}
#include <bits/stdc++.h>
using namespace std ;
struct prem {
int len ;
vector < int > used , position ;
function < void ( vector < int >& ) > action ;
prem ( int l = 0 , function < void ( vector < int >& ) > a = []( vector < int >& position ) {}) : len ( l ), used ( l , -1 ), position ( l ), action ( a ) {}
void run ( int now = -1 ) {
if ( now == len - 1 ) {
action ( position );
return ;
}
int next = now + 1 ;
for ( int i = 0 ; i < len ; i ++ ) {
if ( used [ i ] == -1 ) {
used [ i ] = next ;
position [ next ] = i ;
run ( next );
used [ i ] = -1 ;
}
}
}
};
int main () {
ios :: sync_with_stdio ( false ), cin . tie ( 0 );
int len = 4 ;
prem p ( len , [ & ]( vector < int >& p ) {
for ( int i = 0 ; i < len ; i ++ ) {
cout << p [ i ] << " " ;
}
cout << endl ;
});
p . run ();
return 0 ;
}
import sys
def perm ( dim , num ):
if not 0 <= num <= dim :
print ( 'It must be that 0 <= num <= dim!' , flush = True , file = sys . stderr )
return []
result = []
xstack = []
arr = []
xset = set ( range ( dim , 0 , - 1 ))
xstack . append (( arr , xset ))
while len ( xstack ):
theArr , theSet = xstack . pop ()
for theInt in theSet :
newSet = theSet . copy ()
newSet . remove ( theInt )
newArr = theArr . copy ()
newArr . append ( theInt )
if num == len ( newArr ):
result . append ( newArr )
else :
xstack . append (( newArr , newSet ))
return result
^ 對 たい 於不排 はい 序 じょ 的 てき 情 じょう 形 がた ,請見條目 じょうもく 組合 くみあい 。
^ 可 か 遞置換 ちかん
^ 普通 ふつう 高 だか 中 ちゅう 教科 きょうか 书 数学 すうがく 选择性 せい 必修 ひっしゅう 第 だい 三 さん 册 さつ (A版 ばん ) . 北京 ぺきん 市 し 海 うみ 淀 よど 區 く 中關 なかせき 村 むら 南大 みなみおお 街 がい 17號 ごう 院 いん 1號 ごう 樓 ろう : 人民 じんみん 教育 きょういく 出版 しゅっぱん 社 しゃ . : 17 [2024-03-30 ] . ISBN 978-7-107-34598-2 .
^ 組合 くみあい 數學 すうがく ─算法 さんぽう 與 あずか 分析 ぶんせき ─. 九 きゅう 章 しょう 出版 しゅっぱん 社 しゃ . : 29. OCLC:44527392
Miklos Bona. "Combinatorics of Permutations", Chapman Hall-CRC, 2004. ISBN 978-1-58488-434-7 .
Donald Knuth. The Art of Computer Programming , Volume 4: Generating All Tuples and Permutations , Fascicle 2, first printing. Addison-Wesley, 2005. ISBN 978-0-201-85393-3 .
Donald Knuth. The Art of Computer Programming , Volume 3: Sorting and Searching , Second Edition. Addison-Wesley, 1998. ISBN 978-0-201-89685-5 . Section 5.1: Combinatorial Properties of Permutations, pp.11–72.