DAILY DOCDAILY DOC
Rust
Node
Notes
Ubuntu
Leetcode
  • it-tools
  • excalidraw
  • linux-command
Rust
Node
Notes
Ubuntu
Leetcode
  • it-tools
  • excalidraw
  • linux-command
  • BFC 块级格式化上下文
  • Note
  • WebAssembly
  • public api
  • 位运算
  • bitwise operator
  • css实现隐藏效果
  • css snippets
  • 抖音点赞
  • js 相等判断
  • fetch ReadableStream
  • git
  • Github Actions 工作流
  • google search
  • RPC vs HTTP
  • gravatar
  • hhkb
  • Init project
  • input 文件上传
  • mac

    • Mac 使用技巧
    • alfred
    • mac shortcuts
    • shortcuts text edit
    • mac 修改host
  • 微前端
  • mock
  • nginx dump
  • nginx
  • NirCmd
  • npm
  • Operator Precedence
  • package.json
  • url query 解析
  • pnpm
  • JavaScript Precise countdown
  • react 模版
  • regexp
  • setup web development
  • telegram

    • telegram bot
  • timeFunction ease
  • 视频裁剪
  • vscode

    • vscode 高级指南
    • bracketPairs
    • jsconfig.json
    • vscode pipe into code
    • social project
    • vscode tasks
  • draggable resizable
  • windows 激活
  • 前端截图实现
  • 文本配音 富文本实现
  • 图片处理
  • 前端坐标
  • 定时任务
  • work efficient
  • 微信小程序动画实现方案
  • 排列组合
  • 数列
  • 语音驱动文字
  • 浏览器
  • 状态管理
  • 移动盒子
  • 移动端开发常用snippets
  • 设计模式
  • web performance

排列组合

1. 排列(Permutation)

排列是指从一组元素中按照顺序挑选若干个元素,每种顺序视为不同的排列。关键点在于顺序很重要。

  • 公式:如果从 n 个元素中挑选 r 个进行排列,则排列数为: P(n,r)=n!(n−r)!P(n, r) = \frac{n!}{(n-r)!}P(n,r)=(n−r)!n!​ 其中,n!n!n! 表示阶乘,即 n!=n×(n−1)×⋯×1n! = n \times (n-1) \times \cdots \times 1n!=n×(n−1)×⋯×1。

  • 示例:从 {a, b, c} 三个元素中挑选两个进行排列,有 P(3,2)=3!/(3−2)!=6P(3, 2) = 3!/(3-2)! = 6P(3,2)=3!/(3−2)!=6 种可能的排列:ab, ac, ba, bc, ca, cb。

2. 组合(Combination)

组合是从一组元素中挑选若干个元素,而不考虑顺序。组合和排列的区别是顺序不重要。

  • 公式:如果从 n 个元素中挑选 r 个进行组合,则组合数为: C(n,r)=n!r!(n−r)!C(n, r) = \frac{n!}{r!(n-r)!}C(n,r)=r!(n−r)!n!​

    其中,r!r!r! 表示 r 的阶乘。

  • 示例:从 {a, b, c} 三个元素中挑选两个进行组合,有 C(3,2)=3!/(2!(3−2)!)=3C(3, 2) = 3!/(2!(3-2)!) = 3C(3,2)=3!/(2!(3−2)!)=3 种可能的组合:{a, b}, {a, c}, {b, c}。

排列与组合的区别

  • 排列:顺序不同则为不同情况。例如,ab 和 ba 是不同的排列。
  • 组合:顺序不同但内容相同则视为同一种情况。例如,ab 和 ba 是相同的组合。

例子

  1. 排列问题: 如果有 5 本书,要挑选 3 本进行排列,排列方式有多少种?

    • 解答:P(5,3)=5!(5−3)!=5×4×31=60P(5, 3) = \frac{5!}{(5-3)!} = \frac{5 \times 4 \times 3}{1} = 60P(5,3)=(5−3)!5!​=15×4×3​=60。
  2. 组合问题: 如果有 5 本书,要挑选 3 本进行组合,组合方式有多少种?

    • 解答:C(5,3)=5!3!(5−3)!=5×4×33×2×1=10C(5, 3) = \frac{5!}{3!(5-3)!} = \frac{5 \times 4 \times 3}{3 \times 2 \times 1} = 10C(5,3)=3!(5−3)!5!​=3×2×15×4×3​=10。
Last Updated:
Contributors: rosendo
Prev
微信小程序动画实现方案
Next
数列