問題タブ [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 のシンプルさが気に入っていますが、Haskell では動脈瘤ができてしまうのに対し、これは手続き的に (C か何かで) 5 分で書ける問題です!

この特定の問題の解決策は、私を大いに助けてくれます。また、このようなことに取り組むときの思考プロセスについてもお聞きしたいと思います.

0 投票する
1 に答える
161 参照

arrays - 数学の質問:2つの配列のデカルト積をループするときに行の位置を計算することは可能ですか?

2つの配列のデカルト積の行位置を計算することは可能ですか?

たとえば、2行の配列と3行の配列がある場合、直積のサイズを計算するのは簡単です(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 例外: ローカル シーケンスは、Contains 演算子を除くクエリ演算子の LINQ to SQL 実装では使用できません

私が以下を持っているとしましょう:

これはうまく機能し、次のようなダンプが得られます (注、デカルト積が必要です)。

今、私が本当に望んでいるのは、これとデカルト積を、私が持っているデータベース テーブルの ID に対して再度取得することです。しかし、オブジェクトを参照する代わりに SQL テーブルを参照する from 句をもう 1 つ追加するとすぐに、エラーが発生します。したがって、上記のように db が新しい DataContext (つまり、System.Data.Linq.DataContext から派生したクラス) として定義されているように変更します。

私が得るエラーは次のとおりです。

ローカル シーケンスは、Contains 演算子を除くクエリ演算子の LINQ to SQL 実装では使用できません。

これは明らかにContainsを使用しないことに関連していますが、結果を実際に制限したくない場合にContainsがどのように使用されるかはわかりません-状況にデカルト積が必要です。データベースとローカル シーケンスを結合するときに、上記の [Contains] を使用してデカルト積を生成する方法についてのアイデアはありますか?

0 投票する
5 に答える
26849 参照

sql - INNER JOINクエリでデカルト積を避けるには?

私は 6 つのテーブルを持っています。それらを a、b、c、d、e、f と呼びましょう。ここで、すべてのテーブルのすべての列 (ID 列を除く) で特定の単語を検索したいとします。たとえば、'Joe' としましょう。私がしたことは、すべてのテーブルに対して INNER JOINS を作成し、LIKE を使用して列を検索することでした。

結果は正しいです。探していたすべての列を取得します。しかし、ある種のデカルト積も得られます.2行以上でほぼ同じ結果が得られます。

どうすればこれを回避できますか? 結果はWeb検索に表示されるはずなので、各行を1回だけにしたいです。

アップデート

最初に、次のSELECT DISTINCTステートメントを使用して、これが機能するかどうかを判断しようとしました: pastie.org/970959しかし、それでもデカルト積が得られます。これの何が問題なのですか?

0 投票する
3 に答える
3508 参照

c++ - C++ n 次元タプルのデカルト積のセットを生成する方法

n 次元の n キューブを表す点群の座標を表すデータを生成したいと考えています。これらのポイントは、n 空間全体に均等に分散され、ユーザー定義の間隔で生成できる必要があります。このデータは配列に格納されます。

0 投票する
3 に答える
56847 参照

python - リストのリストの要素に itertools.product を適用する方法は?

配列のリストがあり、配列内の要素のデカルト積を取得したいと考えています。

これをより具体的にするために例を使用します...

itertools.product はそのトリックを行うようですが、私は少し詳細にこだわっています。

私が行った場合

私は得る

でも手に入れたいのは

私はいくつかの異なることを試しました:

彼らは皆、 cp1の代わりにcp0をくれました。

何か案は?

前もって感謝します。

0 投票する
1 に答える
634 参照

mysql - 直交積を使用しない単一の mysql クエリでの複数の多対多の JOIN

現時点では、2 つの別々の SELECT ステートメントで必要な結果を得ることができます

しかし、このようにそれらを組み合わせる

作成者の結果列の名前が重複します。DISTINCT を使用せずに、1 つの SELECT ステートメントから目的の結果を得るにはどうすればよいですか? サブクエリで?

0 投票する
11 に答える
47138 参照

c# - すべての可能な組み合わせの生成

2 つの配列が与えられ、考えられるすべての組み合わせを文字列a(i) b(j) c(k) n(p) として生成するArray1 = {a,b,c...n}Array2 = {10,20,15....x}はどうすればよいですか?

そのような:

したがって、すべての組み合わせの総数 = の要素の積array2 = (10 X 20 X 15 X ..X x)

2 番目の配列が最初の配列の各要素の上限を定義するデカルト積に似ています。

固定数の例、

したがって、3*2*4 = 24 通りの組み合わせがあります。結果は次のようになります。

0 投票する
3 に答える
1820 参照

f# - F# で n シーケンスのデカルト積を計算するにはどうすればよいですか?

パズルをプレゼントしてもらいました。横に並べられた 4 つの立方体で構成されています。各立方体の面は、4 つの色のいずれかです。

パズルを解くには、4 つの立方体の上部がすべて異なり、前面がすべて異なり、背面がすべて異なり、底がすべて異なるように、立方体の向きを変える必要があります。左右は関係ありません。

私の疑似コードの解決策は次のとおりです。

  1. 各立方体の表現を作成します。
  2. 各立方体の可能な方向をすべて取得します (それぞれに 24 あります)。
  3. 各立方体の向きの可能な組み合わせをすべて取得します。
  4. 解を満たす方向の組み合わせを見つけます。

F# でその疑似コードの実装を使用してパズルを解決しましたが、手順 3 の方法には満足していません。

上記のコードは非常に具体的で、4 つの一連の向きのデカルト積のみを計算します。n シーケンスの向きを記述する方法を考え始めました。

私が思いついた (これ以降のすべてのコードは、F# インタラクティブで正常に実行されるはずです):

product 関数は次のように使用できます...

... につながる ...

これはまさに私が望む使い方です。productn はまさに私が望む署名を持っており、機能します。

ただし、product の使用には厄介な行 seq { yield Seq.empty } が含まれており、直感に反して次のようになります。

  1. 値のシーケンス (seq<'a>)
  2. 値のシーケンスのシーケンス(seq<seq<'a>>)

2 番目の引数は正しくないようです。

その奇妙なインターフェイスはproductnによってうまく隠されていますが、それでも私を悩ませています。

n シーケンスのデカルト積を一般的に計算するための、より優れた、より直感的な方法はありますか? これを行う組み込み関数 (またはその組み合わせ) はありますか?

0 投票する
6 に答える
5465 参照

haskell - n 進直交積を計算する

2 つのリストが与えられると、これら 2 つのリストのデカルト積であるすべての順列のリストを作成できます。

permute を拡張して、2 つのリストを取得する代わりに、リスト (長さ n) のリストを取得し、リスト (長さ n) のリストを返すようにするにはどうすればよいですか?

Hoogle で関連するものを見つけることができませんでした.署名に一致する唯一の関数はtranspose、目的の出力を生成しない でした。

編集:これの2リストバージョンは本質的にデカルト積だと思いますが、 n-aryデカルト積の実装に頭を悩ませることはできません。ポインタはありますか?