问题标签 [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.
algorithm - 什么是计算笛卡尔积的好的非递归算法?
笔记
这不是 REBOL 特定的问题。你可以用任何语言回答。
背景
REBOL语言支持创建特定领域的语言,在 REBOL用语中称为“方言” 。我为列表推导创建了这样一种方言,REBOL 本身并不支持这种方言。
列表推导需要一个好的笛卡尔积算法。
问题
我使用元编程来解决这个问题,通过动态创建然后执行一系列嵌套foreach
语句。它工作得很好。但是,因为它是动态的,所以代码的可读性不是很高。REBOL 不能很好地进行递归。它迅速耗尽堆栈空间并崩溃。所以递归解决方案是不可能的。
总之,如果可能的话,我想用一种可读的、非递归的“内联”算法替换我的元编程。解决方案可以是任何语言,只要我可以在 REBOL 中重现它。(我几乎可以阅读任何编程语言:C#、C、C++、Perl、Oz、Haskell、Erlang 等等。)
我应该强调,这个算法需要支持任意数量的要“加入”的集合,因为列表理解可以涉及任意数量的集合。
python - 得到一系列列表的笛卡尔积?
如何从一组列表中获取笛卡尔积(每个可能的值组合)?
输入:
期望的输出:
mysql - 为什么这个 MySQL 查询的结果会相乘?
基本上live_submissions
andnum_comments
变量显示正确的结果,而total_points
and显示,和month_points
的乘积。知道为什么会这样吗?month_points/total_points
live_submissions
num_comments
java - 任意数量集合的笛卡尔积
你知道一些简洁的 Java 库,它们可以让你制作两个(或更多)集合的笛卡尔积吗?
例如:我有三套。一个是 Person 类的对象,第二个是 Gift 类的对象,第三个是 GiftExtension 类的对象。
我想生成一组包含所有可能的三元组 Person-Gift-GiftExtension。
集合的数量可能会有所不同,因此我无法在嵌套的 foreach 循环中执行此操作。在某些情况下,我的应用程序需要制作 Person-Gift pair 的乘积,有时它是三重 Person-Gift-GiftExtension,有时甚至可能会设置 Person-Gift-GiftExtension-GiftSecondExtension-GiftThirdExtension 等。
sql - MySQL多表查询问题
我在查询多个表时遇到问题MySQL
,目前我束手无策。
我ID
在每个表中都有唯一的 s,并且正在使用 anINNER JOIN
来组合它们;我很陌生SQL
,这可能是错误的方法,因此我在这里发布:
询问:
表users
包含
表quiz
包含
表results
包含
谁能告诉我为什么我要得到笛卡尔积,以及我应该如何修复它?
sql - 混合隐式和显式 JOIN
我遇到了 Hibernate 生成无效 SQL 的问题。具体来说,混合和匹配隐式和显式连接。这似乎是一个开放的错误。
但是,我不确定为什么这是无效的 SQL。我想出了一个生成相同语法异常的小玩具示例。
架构
数据
工作 SQL
这两个查询都有效。我意识到有一个笛卡尔积;这是故意的。
显式连接:
隐式连接:
无效的 SQL
此查询不适用于 MSSQL 2000/2008 或 MySQL:
在 MS2000 中,我收到错误:
列前缀“e1”与查询中使用的表名或别名不匹配。
在 MySQL 中,错误是:
“on 子句”中的未知列“e1.managerEmployeeID”。
问题)
- 为什么这个语法无效?
- 奖励:有没有办法强制 Hibernate 只使用显式 JOIN?
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 的所有组合。我怎样才能消除这个?
scala - Scala - 可以通过 for 循环多次使用 yield 吗?
一个例子:
我可以做这样的事情吗?
基本上我想为每次迭代产生多个结果。
python - 使用numpy构建两个数组的所有组合的数组
在尝试对其进行任何复杂操作之前,我正在尝试遍历 6 参数函数的参数空间以研究其数值行为,因此我正在寻找一种有效的方法来做到这一点。
我的函数将 6 维 numpy 数组中给出的浮点值作为输入。我最初尝试做的是:
首先,我创建了一个函数,它接受 2 个数组并生成一个包含两个数组中所有值组合的数组:
然后,我将reduce()
其应用于同一数组的 m 个副本:
最后,我像这样评估我的功能:
这行得通,但是太慢了。我知道参数的空间很大,但这不应该这么慢。在这个例子中,我只采样了 10 6(一百万)个点,仅仅创建数组就花了超过 15 秒values
。
你知道用 numpy 做这个的更有效的方法吗?
F
如果有必要,我可以修改函数接受参数的方式。
perl - 在 Perl 中,如何迭代多个集合的笛卡尔积?
给定x
数量的数组,每个数组都有可能不同数量的元素,我如何遍历从每个数组中选择一个项目的所有组合?
例子:
退货
顺便说一句,我在 Perl 中这样做。