标签: cartesian-product

朱莉娅中两个向量的笛卡尔积

我有两个矢量xy,各自的长度n和p的.是否有内置的方法来创建一个np x 2矩阵

x[1] y[1]
x[1] y[2]
...
x[1] y[p]
x[2] y[1]
...
x[n] y[p]
Run Code Online (Sandbox Code Playgroud)

我可以用嵌套的for循环来做到这一点,但我正在寻找一个内置函数,如果它存在的话.

cartesian-product julia

7
推荐指数
4
解决办法
3307
查看次数

其他流的笛卡尔积的流,每个元素作为List?

如何使用Java 8实现一个函数来获取一些流,并生成一个流,其中每个元素都是一个由流的笛卡尔积的一个成员组成的列表?

我已经看过这个问题 - 这个问题使用了一个聚合器BinaryOperator(采用类似类型的两个项目并生成相同类型的项目).我希望最终结果中的项目是Lists而不是输入流中的元素类型.

具体地说,假设我调用product了我想要的函数,如下:

Stream<List<String>> result =
    product(
        Stream.of("A", "B", "C", "D"), 
        Stream.of("I", "J", "K),
        Stream.of("Y", "Z")
    );

result.forEach(System.out::println);
Run Code Online (Sandbox Code Playgroud)

应该打印:

[A, I, Y]
[A, I, Z]
[A, J, Y]
[A, J, Z]
[A, K, Y]
[A, K, Z]
[B, I, Y]
...
[D, K, Y]
[D, K, Z]
Run Code Online (Sandbox Code Playgroud)

理想情况下,我希望这个操作尽可能地懒惰.例如,如果输入流是由生成的Stream.generate(),那么如果这些流的供应商在绝对需要之前没有被执行,那就太好了.

java cartesian-product java-8 java-stream

7
推荐指数
1
解决办法
553
查看次数

为什么我的笛卡尔积函数不起作用?

考虑以下函数,其输出应该是一系列迭代的笛卡尔积:

def cart(*iterables):
    out = ((e,) for e in iterables[0])
    for iterable in iterables[1:]:
        out = (e1 + (e2,) for e1 in out for e2 in iterable)
    return out
Run Code Online (Sandbox Code Playgroud)

当生成器理解被列表推导替换时,工作正常.当只有2个迭代时也可以工作.但是,当我尝试

print(list(cart([1, 2, 3], 'ab', [4, 5])))
Run Code Online (Sandbox Code Playgroud)

我明白了

[(1, 4, 4), (1, 4, 5), (1, 5, 4), (1, 5, 5),
 (2, 4, 4), (2, 4, 5), (2, 5, 4), (2, 5, 5),
 (3, 4, 4), (3, 4, 5), (3, 5, 4), (3, 5, 5)]
Run Code Online (Sandbox Code Playgroud)

为什么这个而不是笛卡儿产品?

python generator-expression cartesian-product

7
推荐指数
1
解决办法
67
查看次数

返回该宽度和高度的网格中每个可能坐标的列表

因此,我正在编写一个函数allCoords,该函数返回宽度w和高度h两者的网格中每个可能坐标的列表,width并且height必须是非负整数才能返回合理的结果。

示例:allCoords 3 2应该返回[(0,0),(0,1),(0,2),(1,0),(1,1),(1,2)]

到目前为止,这就是我所拥有的,但我什至不知道如何开始编写函数

type GridCoord = (Int, Int)

allCoords :: Int -> Int -> [GridCoord]
Run Code Online (Sandbox Code Playgroud)

haskell cartesian-product cartesian-coordinates

7
推荐指数
1
解决办法
247
查看次数

Sqlalchemy:解决与自定义 Primaryjoin 的多对多关系的笛卡尔积警告

假设我有以下数据库架构:

class A(Base):
    __tablename__ = "a_table"

    id = Column(Integer, primary_key=True, autoincrement=True)
    version = Column(Integer, primary_key=True, default=1)

    # More columns...

    bs = relationship(
        "B", secondary="a2b_table", back_populates="as"
    )

class B(Base):
    __tablename__ = "b_table"

    id = Column(Integer, primary_key=True)

    as = relationship(
        A, secondary="a2b_table", back_populates="bs"
    )

class A2B(Base):
    __tablename__ = "a2b_table"

    a_id = Column(
        Integer(),
        primary_key=True,
    )
    a_version = Column(
        Integer,
        primary_key=True,
    )
    b_id = sa.Column(
        Integer,
        ForeignKey("b.id", name="b_fk"),
        primary_key=True,
    )

    __table_args__ = (
        ForeignKeyConstraint(
            [a_id, a_version],
            [A.id, A.version],
            name="a_fk",
        ),
        {},
    )
    
Run Code Online (Sandbox Code Playgroud)

每个 …

sqlalchemy cartesian-product relationship composite-primary-key window-functions

7
推荐指数
0
解决办法
3645
查看次数

如何在无序的情况下简化"for for in in in in in in in in b in z in c ..."?

#!/usr/bin/python
#
# Description: I try to simplify the implementation of the thing below.
# Sets, such as (a,b,c), with irrelavant order are given. The goal is to
# simplify the messy "assignment", not sure of the term, below.
#
#
# QUESTION: How can you simplify it? 
#
# >>> a=['1','2','3']
# >>> b=['bc','b']
# >>> c=['#']
# >>> print([x+y+z for x in a for y in b for z in c])
# ['1bc#', '1b#', '2bc#', '2b#', '3bc#', '3b#'] …
Run Code Online (Sandbox Code Playgroud)

python list-comprehension cartesian-product unordered

6
推荐指数
2
解决办法
3647
查看次数

Oracle CBO何时选择执行"merge join cartesian"操作?

甲骨文似乎不时更倾向于MERGE JOIN CARTESIAN常规操作MERGE JOIN.知道数据并查看具体的执行计划,我可以看到这个操作通常不是问题,因为其中一个连接的实体只能在手头的查询中返回一个记录.

但是,由于历史原因,我们的DBA对笛卡尔产品普遍不满意.

所以我想更好地分析这些案例,并在我的论证中备份文档.是否有关于查询转换和CBO的官方Oracle文档,我可以在其中了解Oracle更喜欢MERGE JOIN CARTESIAN(或类似)操作的情况?

在这种情况下,我正在使用Oracle 11g(11.2.0.2.0)

更新:

这些是类似的问题,但它们没有解释为什么何时 Oracle更喜欢MJC常规MERGE JOIN:

oracle optimization cartesian-product cost-based-optimizer sql-execution-plan

6
推荐指数
1
解决办法
7679
查看次数

如何确定(子集的笛卡尔积的联合)是否等于(全套的笛卡尔乘积)

假设我有一些有限集: A, B, ..., K

我也有A1, A2, ... AnA的子集; B1, B2, ... Bn这是B等的子集

让我们说S是笛卡尔积A x B x ... x K

并且Sn是笛卡儿的产品An x Bn x ... x Kn

有没有一种算法可以有效地确定所有联合Sn是否相等S

编辑

我也在理论计算机科学论坛上问了这个问题.答案证明问题是完全可靠的.如果答案的作者想在这里发布,我仍然可以提出问题以奖励赏金.

algorithm set cartesian-product

6
推荐指数
1
解决办法
1177
查看次数

Python:获得投资组合的所有权重组合

我认为这个问题可以使用itertools或者笛卡尔来解决,但我对Python很新,我正在努力使用它们:

我有5个股票的投资组合,其中每个股票的权重可以是-0.4,-0.2,0,0.2或0.4,权重加起来为0.我如何创建一个函数来生成每个可能组合的列表权重.例如[-0.4,0.2,0,0.2,0] ......等

理想情况下,该功能适用​​于n种股票,因为我最终希望对50种股票进行相同的处理.

编辑:为了澄清,我正在寻找长度为n的所有组合(在这种情况下为5),求和为0. 值可以重复:例如:[0.2,0.2,-0.4,0,0],[0.4,0 ,-0.2,-0.2,0.4],[0,0,0,0.2,-0.2],[0,0.4,-0.4,0.2,-0.2]等.[0,0,0,0,0]将是一个可能的组合.有5个可能的权重和5个股票的事实是巧合(我应该避免!),同样的问题可能是5个可能的权重和3个股票或7个股票.谢谢.

python list cartesian-product python-itertools

6
推荐指数
1
解决办法
995
查看次数

关系代数中的笛卡尔积

我是关系代数中的一员,我无法完全理解笛卡尔积的工作原理.

我想知道当我的两个表具有共同属性时笛卡尔积中会发生什么.当两个表没有任何共同属性时,我没有任何问题需要理解.

例如,我试图理解我自己做的例子.

T1                          T2
----------                  -----------
A   B   C                   A    B   D
1   4   7                   1    4   8
2   5   3                   2    9   5
4   7   1                   7    3   2
Run Code Online (Sandbox Code Playgroud)

如果我想做T1 x T2,当我想写第一行T1 A=1 , B=4 , C=7和第二行T2 的串联时, A=2 ,B=9 ,C=5A列和B列会发生什么?

如果你能告诉我T1 x T2的结果,那将非常有用!

relational-algebra cartesian-product

6
推荐指数
1
解决办法
1955
查看次数