问题标签 [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.
php - 用新的随机生成的值替换数组中的重复值
我有一个函数(来自未回答的上一个问题),它创建一个具有 n 个值的数组。数组的总和等于 $max。
例如:如果我设置 $n = 4 和 $max = 30。那么我应该得到以下结果。
但是,此函数不考虑重复和 0。我想要 - 并且一直在努力完成 - 是生成一个具有唯一数字的数组,这些数字加起来就是我预定的变量$max。没有重复的数字和没有 0 和/或负整数。
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 个组,每个组只包含一个对象。
combinatorics - 程序包含 2 个嵌套循环,其中包含 4 个 if 条件。有几条路?
在 Roger Pressman 的书中,有一个示例描述了一个具有 2 个嵌套循环的程序,内部循环包含四个 if 语句。这两个循环最多可以执行 20 次。他说这会产生大约 10^14 条路径。为了得到这么大的数字,循环内的路径似乎乘以 2^40,即 2^20 乘以 2^20,以说明通过两个循环的所有可能性。我不明白为什么这个因素不只是 400,即 20 乘以 20。有人可以解释一下吗?如果您有 ppt 幻灯片并且可以看到程序图,这将有所帮助。谢谢。
python - 距离度量的组合优化
我有一组轨迹,由沿轨迹的点组成,并具有与每个点关联的坐标。我将这些存储在 3d 数组中(轨迹、点、参数)。我想找到在这些轨迹的可能成对组合之间具有最大累积距离的一组 r 轨迹。我认为正在工作的第一次尝试如下所示:
这需要很长时间,因为 num_traj 可以在 500-1000 左右,而 r 可以在 5-20 左右。k 是任意的,但通常可以达到 50。
为了变得超级聪明,我将所有内容都放入了两个嵌套列表推导中,大量使用了 itertools:
除了非常难以阅读(!!!)之外,它还需要很长时间。任何人都可以提出任何改进的方法吗?
algorithm - 欧拉计划 #163 理解
我花了很长时间寻找解决这个问题的方法。我画了大量的交叉阴影线三角形,在简单的情况下数了三角形,并搜索了某种模式。不幸的是,我撞到了墙上。我很确定我的编程/数学技能不符合这个问题的先决条件。
所以我在网上找到了一个解决方案,以便访问论坛。我根本不了解大多数方法,有些方法似乎太复杂了。
谁能让我理解这个问题?其中一种方法,可在此处找到:http: //www.math.uni-bielefeld.de/~sillke/SEQUENCES/grid-triangles(问题 C)允许使用单个函数。
他们是如何想出这个解决方案的?在这一点上,我真的很想了解这个有趣问题背后的一些概念。我知道查找解决方案不是欧拉精神的一部分,但我很确定无论如何我都不会解决这个问题。
c# - c#中来自不同列表的所有组合的串联
我有一个列表,我将它分组到不同的列表中。
从:
进入
如何连接此列表中所有可能的组合,输出如下:
c++ - 如何组合来自 std::set 的元素对?
我有一个set<string>
来自“一”、“二”和“三”的词。
我怎样才能从中得到所有对?
- 一二
- 一 - 三
- 二三
combinatorics - 查找不同路径的数量
我有一个游戏,一名球员 X 想将球传给球员 Y,但他可以与多个球员一起比赛,而其他球员可以将球传给 Y。
我想知道球从 X 到 Y 可以走多少条不同的路径?
例如,如果他与 3 名球员一起比赛,则有 5 条不同的路径,4 名球员有 16 条路径,如果他与 20 名球员一起比赛,则有 330665665962404000 条路径,40 名球员 55447192200369381342665835466328897344361743780 球可以走。最大数量 他可以玩的球员是500人。
我在考虑使用加泰罗尼亚数字?你认为是解决这个问题的正确方法吗?你能给我一些建议吗?
python - 使用排序约束生成所有排列
我有一个由其他列表和一些零组成的列表,例如:
我想生成这个列表的所有组合,同时保持内部列表的顺序不变,所以
很好,但是
不是。我觉得这在 Python 中应该相当容易,但我就是不明白。有人可以帮帮我吗?
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。
非常感谢任何帮助。
谢谢