问题标签 [cartesian-product]

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 投票
5 回答
1498 浏览

algorithm - 使用 Powershell 编写的笛卡尔积

尝试在 Powershell 中完成笛卡尔积算法时,我变得非常困难。使用在stackoverflow上找到的其他公式,这就是我想出的:

从代码片段底部的注释中可以看出,输出并没有完全产生预期的结果。迭代计数返回正确的值,但组合未正确完成。

在此代码段中 $sets[x] 是固定的,但在实际脚本中 $sets 字典项目是作为循环的一部分创建的,并且每次迭代可以包含 1 到多个项目。

有人可以提供第二双眼睛来告诉我我错过了什么吗?

谢谢

0 投票
2 回答
2256 浏览

arrays - 2个有序整数数组的高效有序笛卡尔积

需要提示来设计一种有效的算法,该算法采用以下输入并吐出以下输出。

输入:两个排序的整数数组 A 和 B,每个长度为 n

输出:一个由数组 A 和 B 的笛卡尔积组成的排序数组。

这是我解决这个问题的尝试。

1) 鉴于输出为 n^2,高效算法的时间复杂度不能超过 O(n^2)。

2)首先我尝试了一种简单但效率低下的方法。生成 A 和 B 的笛卡尔积。它可以在 O(n^2) 时间复杂度内完成。我们需要存储,所以我们可以对其进行排序。因此也是 O(n^2) 空间复杂度。现在我们对 n^2 个元素进行排序,这些元素不能比 O(n^2logn) 做得更好,而不对输入做任何假设。

最后我有 O(n^2logn) 时间和 O(n^2) 空间复杂度算法。

必须有更好的算法,因为我没有利用输入数组的排序特性。

0 投票
3 回答
5936 浏览

c# - 笛卡尔积 + N x M 动态数组

我已经寻找了几个小时没有任何成功的解决方案。希望有人可以帮助我。

我在 M 个原始邮政编码上有 N 个项目的动态数组。

例如:

项目 1:11001、54010、60621 项目 2:11001、60621 项目 3:60621

我想创建一个如下所示的新数组:

路线1:11001、11001、60621 路线2:11001、60621、60621 路线3:54010、11001、60621

等等 - 直到 6 号公路。

建议?

---------------------- 有什么方法可以在不使用 Linq 的情况下完成此任务?VB.net 和 Linq 不能一起使用 :)

0 投票
3 回答
426 浏览

perl - 为什么 Math::Cartesian::Product 返回祝福对象?

我注意到Math::Cartesian::Product返回一个祝福对象数组,而不是一个简单的数组数组。我不知道为什么。我实际上需要做一些额外的工作(unbless)才能使用结果......

0 投票
2 回答
2067 浏览

scala - 在 Scala 中结合笛卡尔积和地图

这是后续行动:在 Scala 中将一组字符串扩展为笛卡尔积

这个想法是你想要采取:

然后回来:

一个通用的解决方案是:

使用如下:

从理论上讲,应该有一种方法来获取类型的输入Set[Set[A]]并返回一个Set[B]. 也就是说,在组合元素的同时转换类型。

一个示例用法是接收字符串集(如上)并输出它们连接的长度。中的f函数combine将采用以下形式:

我无法提出实施方案。有人有答案吗?

0 投票
2 回答
4179 浏览

python - 如何用无序简化“for x in a for y in b for z in c ...”?

[更新]缺少一个东西,如果你真的有for x in a for y in b for z in c ...,即任意数量的结构,写起来product(a,b,c,...)很麻烦。假设您有一个列表列表,例如d上面示例中的列表。能不能简单点?Python 让我们unpacking使用*afor 列表和字典求值,**b但它只是符号。任意长度的嵌套 for 循环和此类怪物的简化超出了 SO 范围,以便在此处进行进一步研究。我想强调标题中的问题是开放式的,所以如果我接受问题,请不要被误导!

0 投票
4 回答
1261 浏览

java - 如何在飞行中进行组合数学

我有一个非常奇怪的问题,它有一些难以解决的限制。我有一个列表列表,我想对这些列表中的所有项目进行组合。每个项目都有一个名称和一个值。这是一个例子:

主要清单:

  • 清单 01:
    • 项目 01:名称:name01,值:value01
    • 项目 02:名称:name02,值:value02
  • 清单 02:
    • 项目 01:名称:name03,值:value03
  • 清单 03:
    • 项目 01:名称:name04,值:value04
    • 项目 02:名称:name05,值:value05

最终结果应如下所示:

一些清单:

  • 项目 01:name01:value01、name03:value03、name04:value04
  • 项目 02:name02:value02、name03:value03、name04:value04
  • 项目 03:name03:value03、name03:value03、name04:value04
  • 项目 04:name01:value01、name03:value03、name04:value05
  • 项目 05:name02:value02、name03:value03、name04:value05
  • 项目 06:name03:value03、name03:value03、name04:value05

新列表几乎包含类似于哈希映射的项目。

约束如下:

  1. 我无法收集到新列表并将它们混合,因为这些列表可能会很快变得很大。
  2. 我正在使用某种类似观察者的 api,所以我需要尽快让观察者了解结果,这样我就不会使用太多内存。

换句话说,这个组合生成器可能会收到 X 个列表,每个列表可以包含 N 个项目,我必须在不使用太多内存的情况下生成它们的组合。

我不希望一次处理超过 5 个列表,但我想让算法尽可能地适应代码更改。

我正在用 java 解决这个问题,但该算法在其他语言中也应该同样有效,因为它可能会被翻译。

你有什么想法、建议吗?

提前致谢。

PS我不认为递归会很好用。我正在玩弄使用while循环和一些嵌套循环的想法,但是很难想象它应该如何工作。

0 投票
2 回答
807 浏览

sql - O/R 映射:单个复杂查询与多个简单查询

我对如何将 SQL 查询的结果集从服务器传输到客户端感到好奇。

大多数 O/R 映射器同时支持急切和延迟加载,两者各有利弊。例如,Entity Framework4 (.NET) 具有出色的急切负载支持。

但是,假设我们有一个这样的模型:

...

和这样的查询:

这将导致单个 SQL 查询,其中“帖子”的所有数据在每个“评论”的每一行上重复

假设我们对特定帖子有 100 条评论,而 Post.Body 是一个巨大的文本片段。这不好吗?或者数据在发送到客户端时是否以某种方式压缩,从而最大限度地减少每行重复数据的开销?

确定一个这样的查询是否比两个简单的查询(一个用于获取帖子,一个用于获取评论)更有效的最佳方法是什么?

在开发环境中对此进行基准测试毫无意义,这里有多个因素: SQL 服务器上的 CPU 负载 网络负载 应用服务器上的 CPU 负载(物化对象)

对此有什么想法?

[编辑] 澄清:

两个查询将是这样的:

sql

结果

sql

结果

第一个查询将产生一行,第二个查询将产生与评论一样多的行。

对于单个查询,特定帖子的评论数将与评论数一样多,但所有帖子数据在每一行上重复。

结果

p.body 将在每一行上重复,从而使结果集非常大。(假设 p.body 包含大量数据;-)

0 投票
5 回答
1658 浏览

list - 在 Scheme 中生成 2 个列表的列表

调用(cart-product '(q w) '(x y))产生(((q x) (q y)) ((w x) (w y))).

我怎样才能生产((q x) (q y) (w x) (w y))呢?

0 投票
4 回答
8700 浏览

nhibernate - 使用 NHibernate 3.0.0 时对抗笛卡尔积 (x-join)

我数学不好,但我有点明白什么是笛卡尔积
这是我的情况(简化):

我的目标是有效地加载整个项目。

问题当然是:

  • 如果我尝试急切加载合作伙伴及其成本,查询将返回大量行
  • 如果我延迟加载 Partner.Costs,db 会收到垃圾邮件请求(这比第一种方法快一点)

正如我所读到的,常见的解决方法是使用 MultiQueries,但我有点不明白。
所以我希望通过这个确切的例子来学习。

如何有效地加载整个项目?

Ps 我正在使用 NHibernate 3.0.0。
请不要使用 hql 或字符串形式的标准 api 方法发布答案。