錯排就是全錯排序的意思: 首先需要知道在n個數中選出m個使其錯排的可能,也就是高中數學的C(n,m);其次是這m個數全部錯排的方法數。 錯排問題是有自己的公式的,也就是f(n)=(n-1)*[f(n-1)+f(n-2)].接下來就是有趣的證明:
首先考慮,如果開始有n-1個新郎,并且這n-1個人都已經完成了錯排(有f(n-1)種可能),現在又來了一個人,那么后來的第n個人可以通過用自己的新娘去和那n-1個人中的任意一個交換,來實現n個人都錯排。這種情況有(n-1)*f[n-1]種可能; 另外,如果開始的n-1個人不是都錯排,那么要想使第n個人過來與其中一個交換后實現錯排的話就必須滿足兩個條件: 1.那n-1個人中只有一個人選到了自己的新娘,也就是說有n-2個人都已經錯排了。 2.第n個人必須和那個選到自己新娘的人去交換,但那個選到自己新娘的人可以是n-1個人中的任意一個。這種情況有(n-1)*f[n-2]種可能。 其他情況都不能滿足n個人錯排。 因此遞推關系:f[n]=(n-1)*(f[n-1]+f[n-2])
用PRintf輸出%的方法:printf(“%%”);百分號控制輸出格式,因此連續兩個百分號就可以輸出百分號了。 真好o(^▽^)o
新聞熱點
疑難解答