問題タブ [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 - 一連のリストのデカルト積を取得する
リストのグループからデカルト積 (可能な値のすべての組み合わせ) を取得するにはどうすればよいですか?
入力:
望ましい出力:
java - 任意の集合数のデカルト積
2 つ (またはそれ以上) のセットのデカルト積を作成できる Java ライブラリをいくつか知っていますか?
例: 私は 3 つのセットを持っています。1 つは Person クラスのオブジェクト、2 番目は Gift クラスのオブジェクト、3 番目は GiftExtension クラスのオブジェクトです。
考えられるすべてのトリプル Person-Gift-GiftExtension を含む 1 つのセットを生成したいと考えています。
セットの数は異なる場合があるため、ネストされた foreach ループではこれを行うことができません。いくつかの条件下では、私のアプリケーションは Person-Gift ペアの製品を作成する必要があります。時には、Person-Gift-GiftExtension が 3 つである場合もあれば、Person-Gift-GiftExtension-GiftSecondExtension-GiftThirdExtension などのセットが存在する場合もあります。
sql - MySQL マルチテーブル クエリの問題
複数のテーブルをクエリする際に問題があり、MySQL
現在頭がおかしいです。
ID
各テーブルに一意の があり、 を使用INNER JOIN
してそれらを結合しています。私はまったく新しいのでSQL
、これは間違った方法である可能性があるため、ここに投稿します:
クエリ:
表users
に含まれるもの
表quiz
に含まれるもの
表results
に含まれるもの
デカルト積を取得する理由と、それを修正する方法を教えてください。
sql - 暗黙的 JOIN と明示的 JOIN の混合
無効な SQL を生成する Hibernate に問題があります。具体的には、暗黙的結合と明示的結合の混合と一致。これは未解決のバグのようです。
ただし、これが無効な SQL である理由がわかりません。同じ構文例外を生成する小さなおもちゃの例を考え出しました。
スキーマ
データ
ワーキングSQL
これらのクエリは両方とも機能します。デカルト積があることに気付きました。それは意図的なものです。
明示的な結合:
暗黙の結合:
無効な SQL
このクエリは、MSSQL 2000/2008 または MySQL では機能しません。
MS2000 では、次のエラーが表示されます。
列のプレフィックス 'e1' が、クエリで使用されているテーブル名またはエイリアス名と一致しません。
MySQL では、エラーは次のとおりです。
「on 句」の不明な列「e1.managerEmployeeID」。
質問
- この構文が無効なのはなぜですか?
- おまけ: Hibernate に明示的な JOIN のみを使用させる方法はありますか?
sql - SQLデカルト結合の問題
私は3つのテーブルを持っています
- 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の関係があります(テーブルAへのtable 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を使用して2つの配列のすべての組み合わせの配列を構築する
複雑なことをする前に、6パラメーター関数のパラメーター空間を調べて数値の振る舞いを調べようとしているので、これを行うための効率的な方法を探しています。
私の関数は、6次元のnumpy配列で指定されたfloat値を入力として受け取ります。私が最初にやろうとしたのはこれでした:
最初に、2つの配列を受け取り、2つの配列からの値のすべての組み合わせで配列を生成する関数を作成しました。
次に、reduce()
同じ配列のm個のコピーにそれを適用していました。
最後に、次のように関数を評価します。
これは機能しますが、遅すぎます。パラメータのスペースが大きいことは知っていますが、これはそれほど遅くないはずです。この例では106 (100万)ポイントしかサンプリングしておらず、配列を作成するだけで15秒以上かかりましたvalues
。
numpyでこれを行うより効率的な方法を知っていますか?
必要に応じて、関数F
が引数を取る方法を変更できます。
perl - Perlで、複数のセットのデカルト積を反復処理するにはどうすればよいですか?
それぞれが異なる数の要素を持つ配列の数が与えられx
た場合、各配列から1つのアイテムを選択するすべての組み合わせをどのように繰り返すことができますか?
例:
戻り値
私はこれをPerlでやっています、ところで。