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

haskell - Haskell 列表的嵌套笛卡尔积

我想做一个方法,我可以给它一个长度列表,它会返回笛卡尔坐标的所有组合,直到这些长度。用一个例子更容易解释:

一个简单的列表理解是行不通的,因为我不知道列表会有多长。虽然我喜欢 Haskell 对许多问题的简单性,但这是我可以在 5 分钟内以程序方式(用 C 或其他东西)编写的问题,而 Haskell 给了我一个动脉瘤!

解决这个特定问题会对我有很大帮助;我也很想听听您在处理此类问题时的思维过程。

0 投票
1 回答
161 浏览

arrays - 数学问题:是否可以在遍历两个数组的笛卡尔积时计算行位置?

是否可以计算两个数组的笛卡尔积中的行位置?

例如,如果您有一个两行数组和另一个三行数组,则很容易计算笛卡尔积的大小(Array1.Rows.Count * Array2.Rows.Count = 6),但您不能遍历每个数组并且只需使用相应行位置的乘积来计算笛卡尔积中的行位置。

当您以下列方式遍历它们时,是否有一个公式可以从 Array1.Row 和 Array2.Row 获得结果 1、2、3、4、5、6:

谢谢!

0 投票
1 回答
508 浏览

c# - 如何在 linq 中获取数据库和本地序列之间的笛卡尔积?

我在这里看到了这个类似的问题,但无法弄清楚如何在笛卡尔积中使用包含所需的结果情况:

LINQ To SQL 异常:在查询运算符的 LINQ to SQL 实现中不能使用本地序列,但 Contains 运算符除外

假设我有以下内容:

这很好用,我得到了这样的转储(注意,我想要笛卡尔积):

现在我真正想要的是根据我拥有的数据库表中的 ID 再次使用这个和笛卡尔积。但是,只要我再添加一个 from 子句,而不是引用对象,而是引用 SQL 表,我就会得到一个错误。因此,将上面的内容更改为类似这样,其中 db 被定义为新的 DataContext(即,派生自 System.Data.Linq.DataContext 的类):

我得到的错误如下:

本地序列不能在查询运算符的 LINQ to SQL 实现中使用,但 Contains 运算符除外

它显然与不使用包含有关,但我不确定当我真的不想限制结果时如何使用包含 - 我想要笛卡尔产品适合我的情况。关于如何使用上面包含的任何想法,并且在加入数据库和本地序列时仍然产生笛卡尔积?

0 投票
5 回答
26849 浏览

sql - 如何在 INNER JOIN 查询中避免笛卡尔积?

我有 6 张桌子,我们称它们为 a、b、c、d、e、f。现在我想在所有表的所有列(ID 列除外)中搜索某个单词,比如说“Joe”。我所做的是,我对所有表进行了 INNER JOINS,然后使用 LIKE 搜索列。

结果是正确的,我得到了我正在寻找的所有列。但我也得到了某种笛卡尔积,我得到了两条或更多条线,结果几乎相同。

我怎样才能避免这种情况?我希望每行只有一次,因为结果应该出现在网络搜索中。

更新

我首先尝试SELECT DISTINCT通过使用以下语句来确定这件事是否可行:pastie.org/970959但它仍然给了我一个笛卡尔积。这有什么问题?

0 投票
3 回答
3508 浏览

c++ - C ++如何生成n维元组的笛卡尔积集

我希望生成一些数据,这些数据代表代表 n 维的 n 立方体的点云的坐标。这些点应该均匀分布在整个 n 空间中,并且应该能够在它们之间以用户定义的间距生成。这些数据将存储在一个数组中。

0 投票
3 回答
56847 浏览

python - 如何将 itertools.product 应用于列表列表的元素?

我有一个数组列表,我想获得数组中元素的笛卡尔积。

我将用一个例子来使这个更具体......

itertools.product 似乎可以解决问题,但我被困在一个小细节上。

如果我做

我明白了

但我想要得到的是

我尝试了一些不同的东西:

他们都给了我cp0而不是cp1

有任何想法吗?

提前致谢。

0 投票
1 回答
634 浏览

mysql - 没有笛卡尔积的单个 mysql 查询中的多个多对多 JOIN

目前,我可以通过两个单独的 SELECT 语句获得所需的结果

然而,像这样组合它们

导致作者结果列具有重复名称。如何在不使用 DISTINCT 的情况下从一个 SELECT 语句中获得所需的结果?有子查询?

0 投票
11 回答
47138 浏览

c# - 生成所有可能的组合

给定 2 个数组Array1 = {a,b,c...n}Array2 = {10,20,15....x}我如何生成所有可能的组合作为字符串a(i) b(j) c(k) n(p) 其中

如:

所以在所有组合的总数=元素的乘积array2 = (10 X 20 X 15 X ..X x)

类似于笛卡尔积,其中第二个数组定义了第一个数组中每个元素的上限。

具有固定数字的示例,

所以我们将有 3*2*4 = 24 种组合。结果应该是:

0 投票
3 回答
1820 浏览

f# - 如何计算 F# 中 n 个序列的笛卡尔积?

我收到了一个谜题作为礼物。它由 4 个并排排列的立方体组成。每个立方体的面是四种颜色之一。

为了解决这个难题,立方体的方向必须使所有四个立方体的顶部不同,正面不同,背面不同,底部不同。左右两边都无所谓。

我的伪代码解决方案是:

  1. 创建每个立方体的表示。
  2. 获取每个立方体的所有可能方向(每个有 24 个)。
  3. 获取每个立方体的所有可能的方向组合。
  4. 找到满足解决方案的方向组合。

我在 F# 中使用该伪代码的实现解决了这个难题,但对我执行第 3 步的方式不满意:

上面的代码很具体,只计算出四个方向序列的笛卡尔积。我开始考虑一种方法来为 n 个方向序列编写它。

我想出了(从现在开始的所有代码都应该在 F# 交互中正常执行):

产品功能可以这样使用......

...导致...

这正是我想要的用法。productn 正是我想要的签名并且可以工作。

然而,使用 product 涉及到讨厌的行 seq { yield Seq.empty },它不直观地采用:

  1. 值序列 (seq<'a>)
  2. 一系列值序列(seq<seq<'a>>)

第二个论点似乎不正确。

productn 很好地隐藏了那个奇怪的界面,但无论如何仍然在唠叨我。

Are there any nicer, more intuitive ways to generically compute the cartesian product of n sequences? Are there any built in functions (or combination of) that do this?

0 投票
6 回答
5465 浏览

haskell - 计算 n 元笛卡尔积

给定两个列表,我可以生成这两个列表的笛卡尔积的所有排列列表:

我如何扩展置换,而不是采用两个列表,而是采用列表列表(长度 n)并返回列表列表(长度 n)

我在 Hoogle 上找不到任何相关内容。与签名匹配的唯一函数是transpose,它不会产生所需的输出。

编辑:我认为这的 2-list 版本本质上是Cartesian Product,但我无法实现n-ary Cartesian Product。任何指针?