csdn上的一道 排列搜索算法的 题目 咋实现

题主你其实不需要全部排列列出来,只需要根据(a]]*b+a]]*b+a]]*b+a]]*b)%n==k1.当b0-b4各不相同时,搜出a]]、a]]、a]]、a]]这4个不同数的组合有多少个就行,然后再乘以(N-4 +((a]==b0)?1,0))*(N-5 +((a]==b1)?1,0))*(N-6 +((a]==b2)?1,0))*(N-7 +((a]==b3)?1,0))+O,再乘以全排列P(N-4)。2.当b0-b4中有2个数相同时(b2=b3),搜出a]]、a]]、a]]=a]]这3个不同数的组合有多少个就行,然后再乘以(N-3 +((a]==b0)?1,0))*(N-4 +((a]==b1)?1,0))*(N-5 +((a]==b2)?1,0))+O,再乘以全排列P(N-3)。3.当b0-b4中有3个数相同时(b1=b2=b3),搜出a]]、a]]=a]]=a]]这2个不同数的组合有多少个就行,然后再乘以(N-2 +((a]==b0)?1,0))*(N-3 +((a]==b1)?1,0))+O,再乘以全排列P(N-2)。4.当b0-b4中4个数都相同时(b0=b1=b2=b3),搜出a]]=a]]=a]]=a]]这1个数有多少种就行,然后再乘以(N-1)+((a]==b0)?1,0),再乘以全排列P(N-1)。,上面被乘的系数我编起来太麻烦了,还是通过原先慢的程序除一除反算出吧 (>﹏<)


    推荐阅读