问题标签 [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 投票
6 回答
3459 浏览

algorithm - 什么是计算笛卡尔积的好的非递归算法?

笔记

这不是 REBOL 特定的问题。你可以用任何语言回答。

背景

REBOL语言支持创建特定领域的语言,在 REBOL用语中称为“方言” 。我为列表推导创建了这样一种方言,REBOL 本身并不支持这种方言。

列表推导需要一个好的笛卡尔积算法。

问题

我使用元编程来解决这个问题,通过动态创建然后执行一系列嵌套foreach语句。它工作得很好。但是,因为它是动态的,所以代码的可读性不是很高。REBOL 不能很好地进行递归。它迅速耗尽堆栈空间并崩溃。所以递归解决方案是不可能的。

总之,如果可能的话,我想用一种可读的、非递归的“内联”算法替换我的元编程。解决方案可以是任何语言,只要我可以在 REBOL 中重现它。(我几乎可以阅读任何编程语言:C#、C、C++、Perl、Oz、Haskell、Erlang 等等。)

我应该强调,这个算法需要支持任意数量的要“加入”的集合,因为列表理解可以涉及任意数量的集合。

0 投票
17 回答
291396 浏览

python - 得到一系列列表的笛卡尔积?

如何从一组列表中获取笛卡尔积(每个可能的值组合)?

输入:

期望的输出:

0 投票
3 回答
1669 浏览

mysql - 为什么这个 MySQL 查询的结果会相乘?

基本上live_submissionsandnum_comments变量显示正确的结果,而total_pointsand显示,和month_points的乘积。知道为什么会这样吗?month_points/total_pointslive_submissionsnum_comments

0 投票
10 回答
53965 浏览

java - 任意数量集合的笛卡尔积

你知道一些简洁的 Java 库,它们可以让你制作两个(或更多)集合的笛卡尔积吗?

例如:我有三套。一个是 Person 类的对象,第二个是 Gift 类的对象,第三个是 GiftExtension 类的对象。

我想生成一组包含所有可能的三元组 Person-Gift-GiftExtension。

集合的数量可能会有所不同,因此我无法在嵌套的 foreach 循环中执行此操作。在某些情况下,我的应用程序需要制作 Person-Gift pair 的乘积,有时它是三重 Person-Gift-GiftExtension,有时甚至可能会设置 Person-Gift-GiftExtension-GiftSecondExtension-GiftThirdExtension 等。

0 投票
1 回答
170 浏览

sql - MySQL多表查询问题

我在查询多个表时遇到问题MySQL,目前我束手无策。

ID在每个表中都有唯一的 s,并且正在使用 anINNER JOIN来组合它们;我很陌生SQL,这可能是错误的方法,因此我在这里发布:

询问:

users包含

quiz包含

results包含

谁能告诉我为什么我要得到笛卡尔积,以及我应该如何修复它?

0 投票
3 回答
6894 浏览

sql - 混合隐式和显式 JOIN

我遇到了 Hibernate 生成无效 SQL 的问题。具体来说,混合和匹配隐式和显式连接。这似乎是一个开放的错误

但是,我不确定为什么这是无效的 SQL。我想出了一个生成相同语法异常的小玩具示例。

架构

数据

工作 SQL

这两个查询都有效。我意识到有一个笛卡尔积;这是故意的。

显式连接:

隐式连接:

无效的 SQL

此查询不适用于 MSSQL 2000/2008 或 MySQL:

在 MS2000 中,我收到错误:

列前缀“e1”与查询中使用的表名或别名不匹配。

在 MySQL 中,错误是:

“on 子句”中的未知列“e1.managerEmployeeID”。

问题)

  1. 为什么这个语法无效?
  2. 奖励:有没有办法强制 Hibernate 只使用显式 JOIN?

0 投票
2 回答
2731 浏览

sql - SQL笛卡尔连接问题

我有三张桌子

  • A:A.pID 主键,A.Name nvarchar(250)
  • B:B.pID 主键,B.Name nvarchar(250)
  • C: C.pID 主键,C.Name nvarchar(250)

A 和 B 之间存在 am 到 n 关系(lA_B具有主键的表lA_B.pID.pInstanceA表 A 的.pInstanceB外键和表 B 的外键)

A 和 C 之间存在 am 到 n 关系(表 Atable lA_C的主键lA_C.pID和外键以及表 C 的外键).pInstanceA.pInstanceB

  • A1 与 B1、B2 和 C1 相关
  • A2 与 B3 和 C2、C3 相关
  • A3 与 B4 相关
  • A4 与 C4 相关
  • A5没有关系

这是我的 SQL:

这个查询:

返回

现在的问题:-) 如何查询接收

问题是,当我与 B 和 C 进行连接时,结果具有 B C 的所有组合。我怎样才能消除这个?

0 投票
6 回答
17739 浏览

scala - Scala - 可以通过 for 循环多次使用 yield 吗?

一个例子:

我可以做这样的事情吗?

基本上我想为每次迭代产生多个结果。

0 投票
10 回答
193519 浏览

python - 使用numpy构建两个数组的所有组合的数组

在尝试对其进行任何复杂操作之前,我正在尝试遍历 6 参数函数的参数空间以研究其数值行为,因此我正在寻找一种有效的方法来做到这一点。

我的函数将 6 维 numpy 数组中给出的浮点值作为输入。我最初尝试做的是:

首先,我创建了一个函数,它接受 2 个数组并生成一个包含两个数组中所有值组合的数组:

然后,我将reduce()其应用于同一数组的 m 个副本:

最后,我像这样评估我的功能:

这行得通,但是太慢了我知道参数的空间很大,但这不应该这么慢。在这个例子中,我只采样了 10 6(一百万)个点,仅仅创建数组就花了超过 15 秒values

你知道用 numpy 做这个的更有效的方法吗?

F如果有必要,我可以修改函数接受参数的方式。

0 投票
5 回答
2248 浏览

perl - 在 Perl 中,如何迭代多个集合的笛卡尔积?

给定x数量的数组,每个数组都有可能不同数量的元素,我如何遍历从每个数组中选择一个项目的所有组合?

例子:

退货

顺便说一句,我在 Perl 中这样做。