38得票11回答
生成所有的五张扑克牌手牌

这个问题乍一看似乎很简单,但实际上比看起来复杂得多。目前我还被困住了。 从52张扑克牌中选择5张牌的方法有52c5 = 2,598,960种。然而,在扑克中,由于花色是可互换的,其中许多手牌是等价的 - 如2H 2C 3H 3S 4D等同于2D 2S 3D 3C 4H - 只需交换花色即可。...

7得票1回答
强制data.table计算所有交互作用

以下是一个 data.table: dat = data.table(var1=rnorm(120), var2=rep(c('a','b','c'),40), var3=rep(c(1,2,3,2,1,2,1,2,2,3,1,2),10)) dat2 = dat[,list(resp =...

7得票2回答
非递归枚举三元正整数构成的限制组合

在为一款只有很小的RAM(但拥有大型EPROM)的微控制器创建一个枚举正整数的双重限制组合排列字典序函数之后,我不得不将限制数量扩展到3个,包括: 组合长度限制 元素最小值限制 元素最大值限制 下面是原始函数生成双重限制组合的代码: void GenCompositions(unsi...

7得票2回答
以递减的总和顺序生成笛卡尔积

给定 n 个按降序排列的整数列表 A1,A2,...,An,是否有一种算法可以有效地生成它们的笛卡尔积中所有元素,并按照元组和的降序排序?例如,n=3 A1 = [9, 8, 0] A2 = [4, 2] A3 = [5, 1] 预期输出将是 A1xA2xA3 的笛卡尔积,按以下顺序排列:...

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

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

9得票4回答
将n分成k个部分的下一个组合——有没有可行的算法?

将 n 划分为 k 部分 - 我希望列出所有可能的将 n 划分为 k 部分的方法 - 有人有算法吗(最好是使用 R)?或者知道是否有相关库? 例如,如果我有 n 个立方体和 k 个袋子,并想列出将立方体放入袋子的所有可能排列。例如,将 2 个立方体放入 2 个袋子中有 3 种方式: (2,...

8得票2回答
生成长时间Gray编码

针对通信系统,我需要一种特殊类型的格雷码。 两个连续的值仅在一个位上不同,就像所有的格雷码一样。 同一位上的两次转换应至少相隔一些任意数量的值。此距离被记为mrl以表示最小运行长度。 当编码翻转时,我不关心最后一个编码到第一个编码的距离,mrl没有限制。 一个这样的格雷码示例是,对于5...

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

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

17得票5回答
创建不具备超过一个相交元素的组合

我希望创建一种特殊类型的组合,其中任何两个集合之间最多只有一个交集元素。让我用一个例子来解释: 假设我们有一个包含A、B、C、D、E、F、G、H和I的9个字母集。 如果您创建三个字母的标准不重复组合,您将获得9C3个集合。 这些集合将包含如ABC、ABD、BCD等集合。我想创建的集合最多只...

9得票6回答
优化具有仿射成本的笛卡尔请求

我有一个成本优化请求,但我不知道是否有相关文献。由于问题有些复杂,因此提前为问题的长度道歉。 这是一个我正在访问的服务器: - 请求记录(r1,...rn)和字段(f1,...fp) - 您只能请求笛卡尔积(r1,...rp)x(f1,...fp) - 与此类请求相关的成本(时间和金钱)与...