欧拉错信原理——错位重排 错位重排是指一种比较困难理解的复杂数学模型,是伯努利和欧拉在错装信封时发现的,因此又称伯努利——欧拉装错信封问题。 表述为:编号是1、2、...、n的n封信,装入编号为1、2、...、n的n个信封内,要求每封信的编号不同,问有多少种装法? 对这类问题有个固定的递推公式,记n封信的错位重排数为Dn,则D1=0,D2=1,..... Dn=(n-1)*(Dn-1+Dn-2); 思路:对于第n封信,将其放入第k个信封内,第k封信有两种放法,可以放在第n个信封内,也可以不放在第n个信封内; 1.第k封信放在第n个信封内,则剩下的n-2封信的装法相当于Dn-2 2.第k封信不放在第n个信封内,则第k封信可以放在除了第n个信封的其余n-2个信封内,就相当于n-1封信进行错位重排,所以这种情况的装法为Dn-1 最后n和k的取法共有n-1种,根据加法原理和乘法原理,总的装法为: Dn=(n-1)*(Dn-1+Dn-2);
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/221525.html原文链接:https://javaforall.net
