程序员数学基础之计数之基本原理和应用

73 阅读8分钟

第一幕:早餐大作战 —— 加法原理 vs 乘法原理

加法原理

  • 原理定义:如果完成一件事有 (k(k) 类互斥的方案,使得无论通过哪一类方案中的哪一种方法,都可以独立完成这件事,且这些方案之间没有重叠,那么完成这件事的总方法数就是各类方法数之和。
  • 应用场景(“或”字诀): 你的胃只有一个。煎饼果子有3家店可选,豆浆有2家店可选。
  • 问题: 你有多少种早餐选择?
  • 思考: 你只能吃其中一样,所以是“吃煎饼果子喝豆浆”。
  • 计算: (3+2=5( 3 + 2 = 5) 种选择。
  • 公式: (N=n1+n2++nk( N = n_1 + n_2 + \cdots + n_k)
  • 口诀: 单选大法好,选项加起来就跑!

乘法原理

  • 原理定义:如果完成一件事需要分成 (k(k) 个步骤,完成第一步有 (m_1\) 种方法,完成第二步有 (m2(m_2) 种方法,……,完成第 (k(k) 步有 (mk(m_k) 种方法,且各步骤相互独立(即完成前一步不影响后一步的选择范围),那么完成这件事的总方法数就是各步骤方法数的乘积。
  • 应用场景(“和”字诀): 今天老板请客,允许你搭配套餐!主食:煎饼果子/包子/面条(3选1);饮料:豆浆/奶茶/咖啡(3选1)。
  • 问题: 你能搭配出多少种套餐?
  • 思考: 你需要完成“选主食选饮料”这两步。
  • 计算: (3×3=9(3 \times 3 = 9) 种豪华套餐!
  • 公式: (N=m1×m2××mk( N = m_1 \times m_2 \times \cdots \times m_k)
  • 口诀: 多步操作别犯愁,步步相乘不用愁!

第二幕:出门相亲记 —— 排列、组合、置换的“宫斗大戏”

置换原理

  • 原理定义:将 (n(n) 个不同的元素按照一定的顺序进行全部排列,称为这 (n(n) 个元素的一个置换(或全排列)。其总数为 (n(n) 的阶乘。
  • 应用场景(全家福): 你要把三双心爱的鞋(运动鞋、皮鞋、拖鞋)在鞋柜里重新摆一遍。
  • 问题: 有几种摆法?
  • 思考: 所有鞋都必须上场,而且顺序重要(C位当然要放最贵的!)。
  • 计算: (3×2×1=6( 3 \times 2 \times 1 = 6) 种摆法。
  • 公式: (Pn=n!=n×(n1)××2×( P_n = n! = n \times (n-1) \times \cdots \times 2 \times )
  • 口诀: 全员出动排排坐,阶乘一下真热闹!

排列原理

  • 原理定义:从 (n(n) 个不同的元素中,有序地取出 (m(m) ((mn(m \leq n)) 个元素,称为从 (n(n) 个元素中取 (m(m) 个的一个排列。其总数记为 (Pnm(P_n^m) 或 (Anm(A_n^m)。
  • 应用场景(选妃封爵): 你有5件顶级战袍(T恤),但出门只能穿1件,同时还得带1件备用。穿哪件、备用哪件,很有讲究。
  • 问题: 有多少种“正宫+备胎”的组合?
  • 思考: 选部分元素,并且顺序极度重要! “穿A备B”和“穿B备A”是天壤之别。
  • 计算: (5×4=20( 5 \times 4 = 20) 种组合。
  • 公式: (Pnm=Anm=n!(nm)!( P_n^m = A_n^m = \frac{n!}{(n-m)!})
  • 口诀: 精选骨干排座次,顺序不同不一样!

组合原理

  • 原理定义:从 (n(n) 个不同的元素中,无序地取出 (m(m) ((mn(m \leq n)) 个元素组成一组,称为从 (n(n) 个元素中取(m(m) 个的一个组合。其总数记为(Cnm(C_n^m) 或 ((nm)(\binom{n}{m})。
  • 应用场景(好兄弟不分先后): 还是那5件T恤,但现在你要选2件塞进背包去旅行(不区分哪件先穿后穿)。
  • 问题: 有多少种打包方案?
  • 思考: 只关心“选哪两件”,不关心顺序。 {A, B} 和 {B, A} 在背包里是一回事。
  • 计算: 先算排列(P52=20( P_5^2 = 20),但每对组合被算了 (2!=2( 2! = 2) 次,所以 (202=10( \frac{20}{2} = 10) 种。
  • 公式:(Cnm=(nm)=Pnmm!=n!m!(nm)!( C_n^m = \binom{n}{m} = \frac{P_n^m}{m!} = \frac{n!}{m!(n-m)!})
  • 口诀: 只挑人头不排序,内部都是好兄弟!

终极大BOSS:二项式定理 —— 组合原理的终极预言

  • 定理定义:二项式定理描述了二项式的幂的代数展开。它指出,对于任意非负整数 (n(n),有:((a+b)n=k=0n(nk)ankbk( (a + b)^n = \sum_{k=0}^{n} \binom{n}{k} a^{n-k} b^k),其中系数 ((nk)(\binom{n}{k}) 是组合数(上述组合原理),即二项式系数。这个定理深刻揭示了组合数与代数展开之间的内在联系。

让我们用一场全民运动——“猜硬币” 来彻底征服二项式定理这个看似高冷的“终极大BOSS”!

设定场景:一场关于硬币的“终极赌局”

想象一下,你和一个朋友玩猜硬币,连续玩5次。 你的朋友是个“杠精”,他提出一个超级具体的赌注:“如果我连续抛5次,恰好有3次正面朝上,你就给我100块。否则我给你100块。

你这时的第一反应是:“等等!‘恰好3次正面’听起来好像很容易发生,但又好像没那么容易?这赌局公平吗?”

别急!二项式定理就是你口袋里的“预言家”,能一秒看穿这个赌局的真相!

第一幕:拆解赌局 —— “恰好3次正面”有多少种可能?

我们先不关心概率,先关心有多少种情况算你朋友赢。

  • 把5次抛硬币想象成5个空位: _ _ _ _ _
  • 任务: 从5个空位中,选出3个位置来放“正面”(H),剩下的自动放“反面”(T)。
  • 关键洞察: 你只关心哪3次是正面,而不关心这3次正面出现的先后顺序!
    • H H H T T(前三次正面)
    • H T H H T(第一、三、四次正面)
    • ... 等等

问题转化: 从5个位置中,不计顺序地选出3个位置来放置正面——这正是一个经典的组合问题!

答案: 可能的情况数 = ( C(5, 3) = \frac{5!}{3!2!} = 10 ) 种。

解读: 这意味着你朋友有 10条 不同的“胜利路径”。二项式定理里的组合数 ( C(5, 3) ) 就像一个“路标计数器”,提前告诉你通往“恰好3次正面”这个目的地的路一共有10条。

第二幕:计算概率 —— 每一条路都好走吗?

光有路标还不够,我们还得知道走每条路的“难度”有多大。

  • 每次抛硬币,正面朝上(H)的概率是 ( \frac{1}{2} )。
  • 每次反面朝上(T)的概率也是 ( \frac{1}{2} )。
  • 因为每次抛硬币是独立的,所以某一种特定情况(比如 H H H T T)发生的概率是: ((12)×(12)×(12)×(12)×(12)=(12)5=132( (\frac{1}{2}) \times (\frac{1}{2}) \times (\frac{1}{2}) \times (\frac{1}{2}) \times (\frac{1}{2}) = (\frac{1}{2})^5 = \frac{1}{32})

发现了吗? 无论正面和反面以何种顺序排列,只要是“3正2反”,每一种具体排列的概率都是 ( \frac{1}{32} )!

第三幕:二项式定理闪亮登场 —— 预言家的完整咒语

现在,我们可以计算朋友获胜的总概率了:

总概率 = 胜利的路径数 × 每条路径的概率 = C(5, 3) × (1/2)^3 × (1/2)^2

看!这个式子的结构是不是很眼熟?

它就是二项式定理 ((a+b)n( (a + b)^n) 展开式中,特定的一项

让我们来念动咒语:

  • (a( a) = 出现正面的概率 = (12( \frac{1}{2})
  • (b( b) = 出现反面的概率 = (12( \frac{1}{2})
  • (n( n) = 抛硬币的总次数 = 5

那么,((a+b)5( (a + b)^5) 的展开式,完美地预言了所有可能结果:

[(a+b)5=C(5,0)a5+C(5,1)a4b1+C(5,2)a3b2+C(5,3)a2b3+C(5,4)a1b4+C(5,5)b5[ (a + b)^5 = C(5,0)a^5 + C(5,1)a^4b^1 + C(5,2)a^3b^2 + C(5,3)a^2b^3 + C(5,4)a^1b^4 + C(5,5)b^5]

  • (C(5,0)a5( C(5,0)a^5):预言“5次全是正面”的概率。
  • (C(5,1)a4b1( C(5,1)a^4b^1):预言“恰好4次正面”的概率。
  • (C(5,3)a3b2( C(5,3)a^3b^2):这就是我们关心的!“恰好3次正面”的概率!它等于 (10×(12)3×(12)2=1032( 10 \times (\frac{1}{2})^3 \times (\frac{1}{2})^2 = \frac{10}{32})
  • ... 以此类推。

所以,二项式定理:

它是一个“概率预言家”,专门处理这种“成王败寇”、“是非分明”的重复事件。它用组合数 (C(n,k)( C(n, k)) 当“眼睛”,数出有多少种成功路径;再用 (akbnk( a^k b^{n-k}) 计算出每条路径的“通行难度”。两者相乘,就能精准预言“成功恰好k次”的可能性有多大!

生活大拓展:二项式定理无处不在

  • 质量检测: 生产100个零件,假设次品率是1%,质检员抽检10个,“恰好发现1个次品”的概率是多少?——二项式定理瞬间可算!
  • 考试蒙题: 10道选择题,你全靠蒙(四选一)。想猜对至少6道题的概率?把“猜对6道”、“7道”...的概率全加起来就行——二项式定理帮你算得明明白白,让你知道自己有多“幸运”。
  • 游戏抽卡: 某SSR卡出货率是1%,你抽100次,“一张不出”的概率有多大?“出至少一张”的概率又是多少?二项式定理能让你在氪金前保持清醒!

最终裁决:赌局公平吗?

回到最初的赌局,你朋友获胜的概率是 (1032=31.25%( \frac{10}{32} = 31.25\%),而你获胜的概率是 (131.25%=68.75%( 1 - 31.25\% = 68.75\%)。

结论: 这个赌局对你极其有利!你可以自信地拍拍朋友的肩膀说:“哥们,这赌注我接了,不过为了公平起见,要不我们改成‘恰好2次或3次正面’我都输?那样概率就接近50%了。”(当然,这就需要用二项式定理算两项了!)

看,二项式定理不是枯燥的公式,而是你生活中对抗“不确定性”的超级武器!下次遇到类似问题,记得请出这位“预言家”!


最后总结:生活决策指南针

当你面临...核心特征使用原理公式
单选(或)方案互斥,任选其一即可加法原理(N=ni( N = \sum n_i)
多步(和)步骤相连,步步相关乘法原理(N=mi( N = \prod m_i )
全排所有元素全部参与排序置换原理(Pn=n!( P_n = n!)
选排选取部分元素并排序排列原理(Pnm=n!(nm)!( P_n^m = \frac{n!}{(n-m)!})
选组选取部分元素,不排序组合原理(Cnm=n!m!(nm)!( C_n^m = \frac{n!}{m!(n-m)!})
预测计算(是/否)事件的分布二项式定理((a+b)n=k=0n(nk)ankbk( (a+b)^n = \sum_{k=0}^{n} \binom{n}{k} a^{n-k}b^k)