问题标签 [combinatorics]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1157 浏览

php - 用新的随机生成的值替换数组中的重复值

我有一个函数(来自未回答的上一个问题),它创建一个具有 n 个值的数组。数组的总和等于 $max。

例如:如果我设置 $n = 4 和 $max = 30。那么我应该得到以下结果。

但是,此函数不考虑重复和 0。我想要 - 并且一直在努力完成 - 是生成一个具有唯一数字的数组,这些数字加起来就是我预定的变量$max没有重复的数字没有 0 和/或负整数

0 投票
3 回答
861 浏览

c# - 组合学分组

我正在寻找解决组合问题的 C# 算法:

假设我有对象 1,2,3,4

我想获得将这些对象分组到多个组中的所有可能方法,每次都包含所有对象。顺序并不重要。例子:

<1,2,3,4> <1,2 / 3,4> <1,3 / 2,4> <1,4 / 3,2> <1,2,3 / 4> <1,2, 4 / 3> <1,3,4 / 2> <2,3,4 / 1> <1,2 / 3 / 4 > <1,3 / 2 / 4> <1,4 / 3 / 2> < 2,3 / 1 / 4> <4,3 / 1 / 2> <1 / 2 / 3 / 4>

在第一种情况下,有一个组包含所有 4 个对象。接下来是具有 2 个组的案例,这些组以多种不同的方式包含所有对象。最后一种情况是 4 个组,每个组只包含一个对象。

0 投票
1 回答
384 浏览

combinatorics - 程序包含 2 个嵌套循环,其中包含 4 个 if 条件。有几条路?

在 Roger Pressman 的书中,有一个示例描述了一个具有 2 个嵌套循环的程序,内部循环包含四个 if 语句。这两个循环最多可以执行 20 次。他说这会产生大约 10^14 条路径。为了得到这么大的数字,循环内的路径似乎乘以 2^40,即 2^20 乘以 2^20,以说明通过两个循环的所有可能性。我不明白为什么这个因素不只是 400,即 20 乘以 20。有人可以解释一下吗?如果您有 ppt 幻灯片并且可以看到程序图,这将有所帮助。谢谢。

0 投票
5 回答
494 浏览

python - 距离度量的组合优化

我有一组轨迹,由沿轨迹的点组成,并具有与每个点关联的坐标。我将这些存储在 3d 数组中(轨迹、点、参数)。我想找到在这些轨迹的可能成对组合之间具有最大累积距离的一组 r 轨迹。我认为正在工作的第一次尝试如下所示:

这需要很长时间,因为 num_traj 可以在 500-1000 左右,而 r 可以在 5-20 左右。k 是任意的,但通常可以达到 50。

为了变得超级聪明,我将所有内容都放入了两个嵌套列表推导中,大量使用了 itertools:

除了非常难以阅读(!!!)之外,它还需要很长时间。任何人都可以提出任何改进的方法吗?

0 投票
2 回答
1923 浏览

algorithm - 欧拉计划 #163 理解

我花了很长时间寻找解决这个问题的方法。我画了大量的交叉阴影线三角形,在简单的情况下数了三角形,并搜索了某种模式。不幸的是,我撞到了墙上。我很确定我的编程/数学技能不符合这个问题的先决条件。

所以我在网上找到了一个解决方案,以便访问论坛。我根本不了解大多数方法,有些方法似乎太复杂了。

谁能让我理解这个问题?其中一种方法,可在此处找到:http: //www.math.uni-bielefeld.de/~sillke/SEQUENCES/grid-triangles(问题 C)允许使用单个函数。

他们是如何想出这个解决方案的?在这一点上,我真的很想了解这个有趣问题背后的一些概念。我知道查找解决方案不是欧拉精神的一部分,但我很确定无论如何我都不会解决这个问题。

0 投票
3 回答
371 浏览

c# - c#中来自不同列表的所有组合的串联

我有一个列表,我将它分组到不同的列表中。

从:

进入

如何连接此列表中所有可能的组合,输出如下:

0 投票
1 回答
350 浏览

c++ - 如何组合来自 std::set 的元素对?

我有一个set<string>来自“一”、“二”和“三”的词。

我怎样才能从中得到所有对?

  • 一二
  • 一 - 三
  • 二三
0 投票
5 回答
352 浏览

combinatorics - 查找不同路径的数量

我有一个游戏,一名球员 X 想将球传给球员 Y,但他可以与多个球员一起比赛,而其他球员可以将球传给 Y。

我想知道球从 X 到 Y 可以走多少条不同的路径?

例如,如果他与 3 名球员一起比赛,则有 5 条不同的路径,4 名球员有 16 条路径,如果他与 20 名球员一起比赛,则有 330665665962404000 条路径,40 名球员 55447192200369381342665835466328897344361743780 球可以走。最大数量 他可以玩的球员是500人。

我在考虑使用加泰罗尼亚数字?你认为是解决这个问题的正确方法吗?你能给我一些建议吗?

0 投票
3 回答
634 浏览

python - 使用排序约束生成所有排列

我有一个由其他列表和一些零组成的列表,例如:

我想生成这个列表的所有组合,同时保持内部列表的顺序不变,所以

很好,但是

不是。我觉得这在 Python 中应该相当容易,但我就是不明白。有人可以帮帮我吗?

0 投票
5 回答
3988 浏览

algorithm - 创建不再有一个相交元素的组合

我正在寻找一种特殊类型的组合,其中没有两个集合具有多个相交元素。让我用一个例子来解释:

假设我们有 9 个字母集,包含 A、B、C、D、E、F、G、H 和 I

如果您创建三个字母的标准非重复组合,您将拥有 9C3 组。这些将包含 ABC、ABD、BCD 等集合。我希望创建最多只有 1 个常用字母的集合。所以在这个例子中,我们将得到以下集合:

ABC、ADG、AEI、AFH、BEH、BFG、BDI、CFI、CDH、CEG、DEF 和 GHI - 请注意,如果您选择任意两组,则重复字母不超过 1 个。

生成此类集合的好方法是什么?它应该是可扩展的解决方案,以便我可以为一组 1000 个字母执行此操作,子集大小为 4。

非常感谢任何帮助。

谢谢