9得票4回答
Python:生成整数分割

我需要生成给定整数的所有分区。我发现Jerome Kelleher提出的这个算法被认为是最有效的: def accelAsc(n): a = [0 for i in range(n + 1)] k = 1 a[0] = 0 y = n - 1 whil...

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

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

8得票5回答
最小变化算法,最大化“交换”

这是一个关于组合数学的问题,来自一个非数学家,请尽量理解我! 给定一个由n个不同字符组成的数组,我想以最小变化的顺序生成k个字符的子集,即一种顺序,在该顺序下,第i+1次生成包含了仅在第i次生成中没有出现的一个字符。这本身并不太难。然而,我还希望最大化交换出第i+1次生成中的字符是与第i次生...

13得票9回答
在R中按组创建组合

我想为我的课堂创建一个包含所有可能的四人小组的列表。如果我有20名学生,我该如何在R中按组创建此列表?我的行是每个组合,有20列用于完整的学生ID列表,其中第1-4列为“group1”,第5-9列为“group2”等等。 下面给出了每个四人小组(x1、x2、x3和x4)可能组合的列表。现在,...

15得票3回答
如何找到任何整数的乘法分割?

我正在寻找一种高效的算法,用于计算任何给定整数的乘法分割。例如,12的分割数量为4个,分别是: 12 = 12 x 1 = 4 x 3 = 2 x 2 x 3 = 2 x 6 我已经阅读了维基百科文章,但那并没有给出生成这些分割的算法(它只讨论此类分割的数量,而且说实话,这对我来说也不是很...

14得票2回答
为体育联赛生成自然赛程安排

我正在寻找一个用于为一组队伍生成赛程的算法。例如,想象一个体育赛季,在这个赛季中,每个球队都会相互比赛,分别作为主队和客队在其他球队的场地上比赛。 如果teams是一个球队列表,生成整个赛季的所有比赛很容易,可以使用以下代码: set((x, y) for x in teams for y ...

44得票8回答
字符向量的随机样本,不包含相互前缀的元素

考虑一个字符向量pool,其元素是最多具有max_len位的(前导零填充的)二进制数字。 max_len <- 4 pool <- unlist(lapply(seq_len(max_len), function(x) do.call(paste0, expand.grid...

17得票8回答
复杂组合算法

温迪 (Wendy's) 宣传他们的三明治有 256 种组合方式 - 这意味着你可以选择 8 种配料中的任意一种或不选(尽管我想知道为什么他们会将不包含任何配料的组合算作有效,但我走题了)。 一种广义方法允许您将每个选择的各种状态相乘,从而允许更复杂的组合。在这种情况下,温迪的菜品只能包括或...

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

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

25得票3回答
OEIS A002845:2的n个幂次方(插入所有可能方式的括号)所取得的不同值的数量

我正在寻找一种相当快速的算法来计算OEIS序列A002845的项。让我在这里重申它的定义。 让^表示指数运算符。考虑形如2^2^...^2的表达式,其中有n个2并插入所有可能的括号(可能的括号数由Catalan numbers给出)。其中一些表达式将具有相同的值,例如(2^2)^2=2^(2...