3的全排列 · 六种排列

三个不同元素的所有可能顺序:共有 3! = 6 种排列方式,从123到321,一次看懂。

排列数 6 3! = 3×2×1 基础组合数学

📐 什么是「3的全排列」?

全排列是指从给定个数的元素中取出所有元素进行排序。对于数字1、2、3(三个不同元素),全排列就是所有可能的顺序组合,一共 3! = 6 种结果。

在数学与计算机科学中,全排列是排列组合的基础,也是算法入门(回溯、递归)的经典案例。3的全排列虽然简单,但清晰展示了“有序排列”的核心思想。

123 132 213 231 312 321
3的全排列示意图:数字123的所有排列方式

📋 六种排列一览

1 2 3
顺序递增
1 3 2
1固定,32交换
2 1 3
2开头,1,3
2 3 1
2,3,1 轮换
3 1 2
3开头,1,2
3 2 1
完全逆序
3的全排列树形图或列表 + 3! = 6 种
🧮

计算方式

3! = 3 × 2 × 1 = 6 。第一个位置有3种选择,第二个位置有2种,第三个位置仅剩1种,相乘即得。

一般地,n个不同元素全排列数为 n! (n的阶乘)。

3! = 6 是最小的非平凡阶乘。
🔁

生成方式

可以使用回溯法、递归交换、字典序等算法生成。3的全排列常用于教学演示递归树。

例如:固定第一位,对剩余两位全排列;或使用“交换-递归-回溯”模式。

递归生成全排列示意图
💡

实际应用

  • ✔ 密码学中穷举可能排列
  • ✔ 任务调度顺序枚举
  • ✔ 游戏中的排列谜题
  • ✔ 算法竞赛入门基础
全排列思想无处不在。

❓ 常见问题 · 全排列解惑

Q1
三个数字的全排列为什么是6种?
解答: 排列讲究顺序。第一位可以从{1,2,3}中任选1个(3种);第二位从剩下2个中选1个(2种);第三位只剩最后1个(1种)。根据乘法原理,3×2×1=6。也可以直接列举:123,132,213,231,312,321。
Q2
全排列与组合有什么区别?
解答: 全排列考虑顺序,123和213视为不同排列;组合不考虑顺序,{1,2,3}只有一种组合。全排列的数量远大于组合数。3的全排列有6种,而3选3的组合只有1种。
Q3
如何用代码生成3的全排列?
解答: 简单递归思路(Python示例):
def permute(nums):
  if len(nums)==0: return [[]]
  res = []
  for i in range(len(nums)):
    rest = nums[:i]+nums[i+1:]
    for p in permute(rest):
      res.append([nums[i]]+p)
  return res

调用 permute([1,2,3]) 即可获得6种排列。
Q4
3的全排列包含重复数字怎么办?
解答: 如果元素有重复(如1,1,2),全排列会出现重复结果,需要去重。通常使用排序+剪枝或哈希集合。但标准“3的全排列”默认三个不同元素(如1,2,3),不重复。
Q5
3的全排列在现实中有哪些例子?
解答: 比如三把钥匙开三把锁,尝试所有顺序最多需要6次;三个选手领奖台的所有名次可能;三个字母ABC的所有密码排列等。
Q6
如何快速记忆3的全排列?
解答: 按开头数字分类:1开头2种(123,132),2开头2种(213,231),3开头2种(312,321)。对称且好记。

🌿 拓展 · 排列数公式

从n个不同元素中取m个(m≤n)的排列数:
A(n,m) = n! / (n-m)! 。当m=n时即为全排列 n! 。

3的全排列对应 A(3,3)=3!/(0!)=6 。0! 定义为1。

排列公式示意

趣味事实

  • 🔹 3! = 6 同时也是最小的完美数(6=1+2+3)
  • 🔹 三个不同物品的排列总数恰好等于三角形数第3项
  • 🔹 3的全排列也是拉丁方阵的雏形
  • 🔹 字典序中,123是第一个,321是最后一个

📸 全排列可视化

排列树
排列列表
排列公式
排列应用
排列递归
排列结果

* 示意图均为主题相关(1.png占位)