13得票5回答
有没有一种算法可以生成一个多重集合的所有唯一循环排列?

我在进行一些热情的编程时遇到了这个问题。该问题可以表述如下: 对于一个多重集 A,令 P(A) 表示 A 的所有可能排列的集合。P(A) 自然被划分为互不相交的子集,这些子集是等价类,并且等价关系为“可以通过循环移位相互相关联”。通过生成每个等价类中的一个成员来列举所有这些等价类。 ...

11得票6回答
没有镜像或循环重复的唯一排列

背景:我正在编写一种更或多或少的暴力搜索算法来解决我的问题。为了做到这一点,我需要生成和评估所有可能性,以找出哪一个最好。由于评估实际上需要一些时间,我希望生成尽可能少的完全覆盖我的搜索空间的解决方案。此外,我可以为越多的元素做到这一点,就越好。对于任何数字K,通常有K!个排列,对于大于约10...

7得票4回答
在Scheme中生成项链的好的简单算法?

长度为n的k进制项链是一个有序列表,其长度为n,其中的项是从长度为k的字母表中抽取的项,并且是在旋转下共享一个排序的所有列表中词典顺序第一个列表。 例如: (1 2 3)和(1 3 2)是来自字母表{1 2 3}的长度为3的项链。 更多信息: http://en.wikipedia.org...