用python做排列组合中的错位重排

错位重排: Dn=(n-1)x(Dn-1+Dn-2), Dn是元素个数对应的错位重排数,n是元素个数。D1=0, D2=1, D3=2, D4=9, D5=44, D6=265。
怎么用python表达出来,并算出D7,D8,D9,D10的值。

你好,可以使用以下方法:

import numpy as np
a = np.zeros([10])
a[0]=0
a[1]=1
a[2]=2
a[3]=9
a[4]=44
a[5]=265
for i in range(6,10):
    a[i] = i*(a[i-1]+a[i-2])
    print('D',i+1,'=',a[i])

结果是

D 7 = 1854.0
D 8 = 14833.0
D 9 = 133496.0
D 10 = 1334961.0

有帮助望采纳哟,先行谢谢啦

递归就行吧

你给的算式D1满足了,D2不满足呀

D2=1==>(2-1)*(1-1+1-2)=-1!=D2了呀,你这个算式是是不是漏了什么