2018.12.31【NOIP训练】三七二十一(生成函数)

本文探讨了利用生成函数解决复杂组合问题的方法,通过解析特定序列的生成函数,展示了一种优雅的数学技巧。文章深入讲解了指数型生成函数的应用,以及如何通过e的Taylor展开简化表达式。

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

传送门


解析:

n n n位数的答案为 a n a_n an,则显然 { a n } \{a_n\} {an}的生成函数为:
A ( x ) = ( 1 + x 2 2 ! + x 4 4 ! + . . . ) 2 × ( 1 + x 1 + x 2 2 ! + . . . ) 3 A(x)=(1+\frac{x^2}{2!}+\frac{x^4}{4!}+...)^2\times (1+\frac{x}{1}+\frac{x^2}{2!}+...)^3 A(x)=(1+2!x2+4!x4+...)2×(1+1x+2!x2+...)3

对于这种同类排列需要去重,就需要指数型生成函数。当然现在拿到这样一个式子,如果你是真正的猛士,可以尝试暴力化简(也做得出来)。

一个稍微优美一点的方法是借助 e x e^x ex的Taylor展开:
e x = ∑ i = 0 ∞ x n n ! = 1 + x + x 2 2 ! + x 3 3 ! + . . . e^x=\sum_{i=0}^\infty\frac{x^n}{n!}=1+x+\frac{x^2}{2!}+\frac{x^3}{3!}+... ex=i=0n!xn=1+x+2!x2+3!x3+...

那么我们有: e − x = 1 − x + x 2 2 ! − x 3 3 ! + . . . e^{-x}=1-x+\frac{x^2}{2!}-\frac{x^3}{3!}+... ex=1x+2!x23!x3+...

所以原式的第一部分化简为: 1 + x 2 2 ! + x 4 4 ! + . . . = ( e x + e − x ) / 2 1+\frac{x^2}{2!}+\frac{x^4}{4!}+...=(e^x+e^{-x})/2 1+2!x2+4!x4+...=(ex+ex)/2

所以 A ( x ) = 1 4 ( e x + e − x ) 2 × e 3 x = 1 4 ( e 5 x + 2 e 3 x + e x ) = 1 4 ∑ i = 0 ∞ ( 5 i + 2 × 3 i + 1 ) × x i i ! \begin{aligned} A(x)&=\frac{1}{4}(e^x+e^{-x})^2\times e^{3x}\\ &=\frac{1}{4}(e^{5x}+2e^{3x}+e^x)\\ &=\frac{1}{4}\sum_{i=0}^\infty (5^i+2\times 3^i+1)\times \frac{x^i}{i!} \end{aligned} A(x)=41(ex+ex)2×e3x=41(e5x+2e3x+ex)=41i=0(5i+2×3i+1)×i!xi

所以 a i = 1 4 ( 5 i + 2 × 3 i + 1 ) a_i=\frac{1}{4}(5^i+2\times 3^i+1) ai=41(5i+2×3i+1)

这种难度全在推理的题就不放代码了,就一个快速幂。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值