P3414 SAC#1 - 组合数 & P2822 [NOIP2016 提高组] 组合数问题

博客深入探讨组合数和排列数的概念,结合P3414 SAC#1及P2822 NOIP2016提高组的题目,阐述了组合数在解决实际问题中的应用。通过杨辉三角进行预处理,并讨论了在数据超过int范围时的处理策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

- e i π e^{i\pi} eiπ、组合基础

阶乘

n ∈ N ∗ n\in{\mathbb{N^*}} nN, n ! = 1 ∗ 2 ∗ … ∗ n = ∏ i = 1 n a i n!=1*2*…*n={\prod\limits_{i=1}^na_i} n!=12n=i=1nai
我们规定, 0 ! = 1 0!=1 0!=1

排列数

假设共 N N N个人,选 M M M个人买奶茶。显然,肯定有人想先买(晚了就没了),所以我们需要将他们排好队,对吧。那么,可能的种类大概是这样:

N N-1 N-2 …… N-M+1
N N-1 N-2 …… N-M+1
哦~
那么显而易见,我们就可以得出如下等式:
A N M = A_N^M= ANM= N ! ( N − M ) ! {\dfrac{N!}{(N-M)!}} (NM)!N!
特别的,有一种叫全排列:
A N N = A_N^N= ANN= N ! 0 ! {\dfrac{N!}{0!}} 0!N! = N ! =N! =N!
也可以表示N个人全部选中,有 A N N A_N^N ANN种排序方法

组合数

这时候,我们不让这N个人中的M个喝奶茶,于是,他们都不愿意,而我们也不在乎不喝的人的顺序。
由上面的排列数可知,选这M个人(有序)有 A N M A_N^M ANM种选法,但因为不在乎顺序所以可以除以 A M M A_M^M AMM由此可知:
C N M = A N M A M M = N ! M ! ⋅ ( N − M ) ! C_N^M={\dfrac{A_N^M}{A_M^M}}={\dfrac{N!}{M!·(N-M)!}} CNM=

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值