错排
递推理解
思路概述
假设 表示一个规模为 的方案数,则可以试着将这个问题的规模缩小,即可以先从 个值中选择一个值放在一个位置,比如说放在 位置,则此时方案数为 ,现在再来考虑剩下的 个值,再选择一个值放,可以将问题分成不重合的两类,而且包含所有的情况。其一是将这个值放在第 个位置,这种情况下除了第一个放的值之外剩下的 个值的方案数就是 ;其二,这个值不放在第 个位置,而放在其他不为 的位置,这时候剩下的这 个值的方案数就是 。
所以乘法原理都乘起来就是 。
这也就是错排的递推式了。
容斥原理理解
思路概述
假设现在你将 的全排列放上去,考虑哪些排列是错误的,首先第 个位置放 的方案数是 种,这一个数的选取方案是 个数种选一个的方案数,即 ,乘起来也就是 ,这样会多减去两个数都不错排的数量,再加上,也就是 ,剩下的 个数随便排,即算出来总方案数就是 ,后边同理,最后累加起来得到 。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!