排列(英语:Permutation)是将相异对象或符号根据确定的顺序重排。每个顺序都称作一个排列。例如,从一到六的数字有720种排列,对应于由这些数字组成的所有不重复亦不阙漏的序列,例如"4, 5, 6, 1, 2, 3" 与。
置换(排列)的广义概念在不同语境下有不同的形式定义:
此节使用排列的传统定义。从排序写在第一列,而将置换后的排序写在第二列。例如:
表示集合 {1,2,3,4,5} 上的置换 。在计算机科学中,这就是将值
赋予变量
的赋值运算子,并要求每个值只能赋予一个变量。
赋值/代入的差别表明函数式编程与指令式编程之差异。纯粹的函数式编程并不提供赋值机制。现今数学的惯例是将排列看作函数,其间运算看作函数合成,函数式编程也类似。就赋值语言的观点,一个代入是将给定的值“同时”重排,这是个有名的问题。
取一个无向图,将图的个顶点标记1,...,n,对应一个排列( s(1) s(2) ... s() ),当且仅当s() < s() 而 > ,则图的i和j相连,这样的图称为排列图。
排列图的补图必是排列图。
多数计算机都有个计算排列数的 键。然而此键在一些最先进的桌上型机种中却被隐藏了。例如:在 TI-83 中,按 MATH、三次右键、再按二。在卡西欧的图形计算机中,按 OPTN,一次右键(F6)、PROB(F3)、nPr(F2)。
多数试算表软件都有函式 PERMUT(,),用以计算排列。 是描述对象数量的一个整数, 是描述每个排列中所取对象数的整数。