(Translated by https://www.hiragana.jp/)
排列 - 維基百科,自由的百科全書 とべいたり內容

排列はいれつ

本頁使用了標題或全文手工轉換
維基百科ひゃっか自由じゆうてき百科全書ひゃっかぜんしょ
「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對象たいしょうてき置換ちかん」。

定義ていぎ

[編輯へんしゅう]

いち集合しゅうごう置換ちかんためしたがえ集合しゅうごううついたり自身じしんてきたいしゃ函數かんすう

恆等こうとう置換ちかんてき定義ていぎため置換ちかん使つかいとくたい所有しょゆう

所有しょゆうせき元素げんそてき集合しゅうごうてき置換ちかん組成そせいてき集合しゅうごう構成こうせい對稱たいしょうぐん,其ぐん運算うんざんため函數かんすうてきふくあいよし兩個りゃんこ置換ちかんてきせきてき定義ていぎため

兩個りゃんこ置換ちかんてきふくあい一般いっぱん不滿足ふまんぞく交換こうかんりつ

置換ちかんすうてき計算けいさん

[編輯へんしゅう]

此節使用しよう置換ちかんてき傳統でんとう定義ていぎしたがえしょう元素げんそちゅう取出とりで元素げんそ元素げんそてき排列はいれつ數量すうりょうため

其中PためPermutation(排列はいれつ),!表示ひょうじかいじょう運算うんざん

さいためれいゆう8ひき參加さんかさい,玩家需要じゅようざいいろどりひょうじょうはまにゅうまえ三勝出的馬匹的號碼,したがえ8ひきちゅう取出とりで3ひきらいはいまえ3めい排列はいれつ數量すうりょうため

いんためいち共存きょうぞんざい336しゅ可能かのうせいいん此玩ざい一次填入中中獎的概率應該是:

中國ちゅうごく大陸たいりくてき教科書きょうかしょそくこれしたがえnkてき情況じょうきょうさくある(A代表だいひょうArrangement,そく排列はいれつ)。[1]

重複じゅうふく置換ちかん

[編輯へんしゅう]

上面うわつらてきれい建立こんりゅうざい取出とりで元素げんそ重複じゅうふく出現しゅつげんじょうきょう

したがえ元素げんそちゅう取出とりで元素げんそ元素げんそ重複じゅうふく出現しゅつげん,這排列はいれつ數量すうりょうため

[2]

よんほしあやためれい,10數字すうじ4數字すうじいん可能かのう重複じゅうふく所以ゆえん排列はいれつ數量すうりょうため

這時てき一次性添入中獎的概率就應該是:

抽象ちゅうしょう代數だいすう

[編輯へんしゅう]

ざい集合しゅうごうろんあずか抽象ちゅうしょう代數だいすうとう領域りょういきちゅう,「置換ちかんいち保留ほりゅうため集合しゅうごう通常つうじょう有限ゆうげんしゅういた自身じしんてきたいしゃてきいち稱呼しょうこれい如對於從一到十的數字構成的集合,其置換ちかんはたこれしたがえ集合しゅうごう いた自身じしんてきたいしゃよし此,置換ちかんようゆうしょうどう定義ていぎいきあずか對應たいおういきてき函數かんすう,且其ためたい射的しゃてき。一個集合上的置換在函數合成運算下構成一個ぐんたたえため對稱たいしょうぐんある置換ちかんぐん

符號ふごう

[編輯へんしゅう]

以下いか考慮こうりょ有限ゆうげんしゅうじょうてき置換ちかんためたいしゃ),ゆかり 元素げんそてき有限ゆうげんしゅう以一いち對應たいおういた集合しゅうごう 有限ゆうげんしゅうてき置換ちかん以化やくいたかたち如 {1, ..., n} てき集合しゅうごう置換ちかん。此時ゆうりょうたね表示法ひょうじほう

だいいち利用りようのりじん符號ふごうしょう自然しぜんはいじょうつしざいだいいちれつ,而將置換ちかんてきはいじょうつしざいだいれつれい如:

表示ひょうじ集合しゅうごう {1,2,3,4,5} じょうてき置換ちかん

だい,藉由置換ちかんてきしょうつぎ作用さよう描述,這被しょうためかわ分解ぶんかい」。分解ぶんかい方式ほうしき如下:固定こてい置換ちかん たいにんいち元素げんそ ゆかり集合しゅうごう有限ゆうげん たいしゃ,必存在そんざいせい整數せいすう 使つかいとく しょう置換ちかん たい まとしょうつぎ作用さようひょうなり ,其中 滿足まんぞく てき最小さいしょうせい整數せいすう

しょう上述じょうじゅつひょうほうため ざい したてきかわ しょうためかわてきながたびわが們在此將かわさく環狀かんじょう排列はいれつれい

あずか

どういちかわよし可知かち ざい したてきかわただ決定けってい ざい 作用さようてき軌道きどう,於是,にん兩個りゃんこ元素げんそ あるきゅうどういちかわあるきゅう交的かわ

わが們將かわ 理解りかいため一類いちるい特殊とくしゅてき置換ちかん[ちゅう 2]:僅須定義ていぎ置換ちかん ため ,而在其它元素げんそじょう定義ていぎため恆等こうとううつ交的かわざい函數かんすう合成ごうせいてき意義いぎしょう交換こうかん

いん此我們可以將集合しゅうごう {1, ..., n} たい一置換分解成不交輪換的合成,此分解ぶんかいわかけい順序じゅんじょそく唯一ゆいいつてきれい如前いちれいてき 就對おういた (1 2 5) (3 4) ある (3 4) (1 2 5)。

かわ

[編輯へんしゅう]

かわいちしゅ特殊とくしゅてき置換ちかん

如果きゅうじょうこれうえてきいち置換ちかんためうえてきいちしゅう

わかゆう

のりしょう ためいちかわ ためかわてきちょう

特殊とくしゅ置換ちかん

[編輯へんしゅう]

ざいうえぶしてき置換ちかんひょうほうちゅうちょうとう於二てき環狀かんじょう置換ちかんたたえためかわくらい,這種環狀かんじょう置換ちかん そとはた元素げんそ 交換こうかんなみ保持ほじ其它元素げんそ不變ふへん對稱たいしょうぐん以由かわくらい生成せいせい

よし於環じょう置換ちかんちょうためてき置換ちかん分解ぶんかいため最少さいしょうかわくらいわかため偶數ぐうすうのりため偶換いやのりためかわくらいそく環狀かんじょう置換ちかんてきちょうため奇數きすう,該置換ちかんため偶換環狀かんじょう置換ちかんてきちょうため偶數ぐうすう,該置換ちかんためかわくらい

よし此可定義ていぎにんいち置換ちかんてき奇偶きぐうせいなみ證明しょうめい:一個置換是偶換位的充要條件是它可以由偶數個換位生成。偶換ざい置換ちかんぐんちゅう構成こうせいいち正規せいきぐんたたえため交錯こうさくぐん

計算けいさん理論りろんちゅうてき置換ちかん

[編輯へんしゅう]

ぼう些舊ほんしょう置換ちかんため變量へんりょう值的ざい計算けいさん科學かがくなか,這就はた

1, 2, ..., n

變量へんりょう

x1, x2, ..., xn

てき運算うんざんなみ要求ようきゅうごと值只のういち變量へんりょう

值/代入だいにゅうてき差別さべつ表明ひょうめい函數かんすうしきへんほどあずか指令しれいしきへんほどこれ差異さい純粹じゅんすいてき函數かんすうしきへんほどなみ提供ていきょう值機せい現今げんこん數學すうがくてき慣例かんれいしょう置換ちかんさく函數かんすう,其間運算うんざんさく函數かんすう合成ごうせい函數かんすうしきへんほど類似るいじ。就賦值語げんてき觀點かんてん,一個代入是將給定的值「同時どうじじゅうはい,這是有名ゆうめいてき問題もんだい

置換ちかん

[編輯へんしゅう]
(2,5,1,4,3,6)てき置換ちかん

いちむかいGしょうGてきn頂點ちょうてん標記ひょうきv1,...,vn對應たいおういち置換ちかん( s(1) s(2) ... s(n) ),とう且僅とうs(i) < s(j) 而 i > jのりてきvivjあいれん,這樣てきしょうため置換ちかん

置換ちかんてき必是置換ちかん

使用しよう計算けいさん

[編輯へんしゅう]

多數たすう計算けいさんみやこゆう計算けいさん置換ちかんすうてき nPr かぎしか而此かぎざい一些最先進的桌上型機種中卻被隱藏了。れい如:ざい TI-83 ちゅう,按 MATH、さんみぎかぎさい按二。ざい西歐せいおうてき圖形ずけい計算けいさんちゅう,按 OPTN,いちみぎかぎ(F6)、PROB(F3)、nPr(F2)。

試算しさんひょう語法ごほう

[編輯へんしゅう]

多數たすう試算しさんひょう軟件ゆうはこしき PERMUT(NumberNumber chosen),よう計算けいさん置換ちかんNumber 描述物件ぶっけん數量すうりょうてきいち整數せいすうNumber chosen 描述ごと置換ちかんちゅうしょ物件ぶっけんすうてき整數せいすう

C++演算えんざんはんれい

[編輯へんしゅう]

迴圈ほう

[編輯へんしゅう]
#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;
}

python演算えんざんはんれい

[編輯へんしゅう]
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

註釋ちゅうしゃく

[編輯へんしゅう]
  1. ^ たい於不はいじょてきじょうがた,請見條目じょうもく組合くみあい
  2. ^ 置換ちかん

參考さんこう文獻ぶんけん

[編輯へんしゅう]
  1. ^ 普通ふつうだかちゅう教科きょうか数学すうがく 选择せい必修ひっしゅうだいさんさつ(Aばん. 北京ぺきんうみよど中關なかせきむら南大みなみおおがい17ごういん1ごうろう: 人民じんみん教育きょういく出版しゅっぱんしゃ. : 17 [2024-03-30]. ISBN 978-7-107-34598-2. 
  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.

外部がいぶ連結れんけつ

[編輯へんしゅう]