生成可重集排列需要在生成生成全排列的基础上做一些修改,可以把判断A[j]是否等于i改为是否等于P[j],但当P中出现重复序列时,会没有输出,因为在某个递归中A中一定已经出现与之重复的元素。所以可以判断A中出现重复元素的次数是否小于P中重复元素的个数,如果成立,则可以进行,否则不能进行,但是,这样会重复,我们不能做重复,所以,要先对P排一下序,只要P[i]!=P[i-1]即可。
生成可重集排列需要在生成生成全排列的基础上做一些修改,可以把判断A[j]是否等于i改为是否等于P[j],但当P中出现重复序列时,会没有输出,因为在某个递归中A中一定已经出现与之重复的元素。所以可以判断A中出现重复元素的次数是否小于P中重复元素的个数,如果成立,则可以进行,否则不能进行,但是,这样会重复,我们不能做重复,所以,要先对P排一下序,只要P[i]!=P[i-1]即可。