回 帖 发 新 帖 刷新版面

主题:[讨论]排列问题

有N个字符,每个字符用N-1次,然后把这些字符排成一列,怎样排列才能使任意两个字符的相邻次数有且只有两次?首尾两个字符看成相邻。

如3个字符A,B,C排列如下:ABCACB 就能满足上面的要求,3个字符每个用了两次,AB相邻两次(包括首尾),AC相邻两次,BC相邻两次。

问题是如果4个字符ABCD,每个字符用3次,5个字符ABCDE,每个字符用4次,以至于更多的字符,该如何排列呢?

那位高手能编个程序求解吗?

回复列表 (共12个回复)

11 楼

我算了一下三个字母的排列:
A,B,C任意相邻有 AB,AC,BA,CA,BC,CB六个。
得到相邻以AB开始的有ABACBC,ABCACB,ABCBAC三个。
跟据任意两字符相邻、首尾相邻原则以AC,BA,CA,BC,CB开始的同样有三个那一共18个才对。

12 楼

对。确实遗漏了,应该有 n!*(n*(n-1)/2) 种情况满足。

我来回复

您尚未登录,请登录后再回复。点此登录或注册