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)放入到上面的位置中。
要求两个同色球之间间隔两个位置。

解决方案 »

  1.   

    那换另一种问法:
    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)数组保存
      

  2.   

    ’要求两个A之间间隔两个位置
    '比如:"d,B,C,A,B,D,e,a,C,b,e,a,d,b,e"
    '结果用X(15)数组保存-------------------
    排列并不难,但看不懂你的问题
      

  3.   

    //’要求两个A之间间隔两个位置
    //'比如:"d,B,C,A,B,D,e,a,C,b,e,a,d,b,e"
    //'结果用X(15)数组保存
    //上面的例子你想要的答案是什么?
      

  4.   

    顺序排列,要求两个相同的字母不相邻且相邻两个位置(间隔2): 
    例1:
    AAB---(间隔1)---->ABA
       ---(间隔2)----> 不成立
    例2:            
    AABB---(间隔1)---->ABAB,BABA
        ---(间隔2)---->不成立
    例3:
    AABBC---(间隔1)---->ABABC,CABAB,BABCA,CBABA,BABAC
         ---(间隔2)---->ABCAB,BACBA//上面三个例子中,可以看出,例3满足两个相同的字母不相邻且相邻两个位置。
    //求一个字符窜中的字母排列是否满足例3的第二中情况,如果满足,请得到排列个数,并表示出来。
    //好象是中学的数学问题,不好意思,让大家费心了。