求个C语言一道算法题的算法ABCDEFG每个人对应1234567号 他们每个人都拿不到自己号码的情况 这个算法该是怎样

来源:学生作业帮助网 编辑:作业帮 时间:2024/07/12 14:11:09
求个C语言一道算法题的算法ABCDEFG每个人对应1234567号 他们每个人都拿不到自己号码的情况 这个算法该是怎样
xRRPPʌR;%ZVѡ(``%$A?$+~wmƝfr޹{n$r\}v5ih^ssG^9J:eJ}f-c!=ŃGi0tz0ifIw!'DeuWo㉎!6ljѷyRw4$g\χRswC7gv!6_> b/BX8ũu= * ɞ.'+y6٧so!4Tͭ6&'``*.`֩ %Vv祖%Gs:%y r4Ӣl)lA| WہQ](h*

求个C语言一道算法题的算法ABCDEFG每个人对应1234567号 他们每个人都拿不到自己号码的情况 这个算法该是怎样
求个C语言一道算法题的算法
ABCDEFG每个人对应1234567号 他们每个人都拿不到自己号码的情况 这个算法该是怎样

求个C语言一道算法题的算法ABCDEFG每个人对应1234567号 他们每个人都拿不到自己号码的情况 这个算法该是怎样
这个给一个思路吧
f(1)= 0;
f(2)= 1;
f(n)= (n-1)(f(n-1)+f(n-2))
用递归就可了.
理由:假设现在n-1个人 ,有f(n-1)中方式 那么 现在增加一个人,这个人可以其中的任何一种方式的任何一个人交换 这样 为 (n-1)*f(n-1)
再次,本来n-1个人中有一个人自己拿自己 这样 是 f(n-2)(n-1) ,拿自己号码的人和新加的人换,所以成立.
有上、得 f(n)= (n-1)(f(n-1)+f(n-2))