X |X | X | X |X |
X |X | X | X |X |
-----------------------------------
X |X | X | X |X |如图:共有15(X位置)
要把15个球(4个A,4个B,3个C,两个D,两个E)放入到上面的位置中。
要求两个同色球之间间隔两个位置。
X |X | X | X |X |
-----------------------------------
X |X | X | X |X |如图:共有15(X位置)
要把15个球(4个A,4个B,3个C,两个D,两个E)放入到上面的位置中。
要求两个同色球之间间隔两个位置。
Dim X(15) as string
Dim data
Const str = "A,A,A,A,B,B,B,B,C,C,C,D,D,E,E"
data = Split(str, ",")
'重新排列str
’要求两个A之间间隔两个位置
'比如:"d,B,C,A,B,D,e,a,C,b,e,a,d,b,e"
'结果用X(15)数组保存
'比如:"d,B,C,A,B,D,e,a,C,b,e,a,d,b,e"
'结果用X(15)数组保存-------------------
排列并不难,但看不懂你的问题
//'比如:"d,B,C,A,B,D,e,a,C,b,e,a,d,b,e"
//'结果用X(15)数组保存
//上面的例子你想要的答案是什么?
例1:
AAB---(间隔1)---->ABA
---(间隔2)----> 不成立
例2:
AABB---(间隔1)---->ABAB,BABA
---(间隔2)---->不成立
例3:
AABBC---(间隔1)---->ABABC,CABAB,BABCA,CBABA,BABAC
---(间隔2)---->ABCAB,BACBA//上面三个例子中,可以看出,例3满足两个相同的字母不相邻且相邻两个位置。
//求一个字符窜中的字母排列是否满足例3的第二中情况,如果满足,请得到排列个数,并表示出来。
//好象是中学的数学问题,不好意思,让大家费心了。