回 帖 发 新 帖 刷新版面

主题:[讨论]一个排列问题

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

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

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

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

回复列表 (共2个回复)

沙发

这是个数学问题啊, 跟编程关系不大
先从数学上找到解吧

板凳

解应当不唯一, 下面是其中一个解:

假设有n个字符, a1,...an

a1 a2 a1 a3 a1 a4 ... a1 an
a2 a3 a2 a4 a2 a5 ... a2 an
a3 a4 a3 a5 ... a3 an
...
an-1 an

我来回复

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