問題タブ [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 投票する
5 に答える
1498 参照

algorithm - Powershell で書かれたデカルト積

Powershell でデカルト積アルゴリズムを完成させようとして非常に行き詰まりました。ここでスタックオーバーフローにある他の数式を使用して、これが私が思いついたものです:

コード スニペットの下部にあるコメントに見られるように、出力は目的の結果を完全には生成していません。反復回数は正しい値を返していますが、組み合わせは正しく完了していません。

このスニペットでは $sets[x] は修正されていますが、実際のスクリプトでは $sets 辞書項目がループの一部として作成され、反復ごとに 1 つから多くの項目を含めることができます。

誰かが私が見逃したものを見せてくれる別の目を提供してくれませんか?

ありがとう

0 投票する
2 に答える
2256 参照

arrays - 整数の2つのソートされた配列の効率的なソートされたデカルト積

次の入力を受け取り、次の出力を吐き出す効率的なアルゴリズムを設計するには、ヒントが必要です。

入力:それぞれ長さがnの整数AとBの2つのソートされた配列

出力:配列AとBのデカルト積で構成される1つのソートされた配列。

これがこの問題を解決するための私の試みです。

1)出力がn ^ 2であるとすると、効率的なアルゴリズムはO(n ^ 2)時間計算量よりも優れた処理を行うことはできません。

2)最初に、単純ですが非効率的なアプローチを試しました。AとBのデカルト積を生成します。これはO(n ^ 2)時間計算量で実行できます。保存する必要があるので、並べ替えを行うことができます。したがって、O(n ^ 2)スペースの複雑さもあります。ここで、入力に仮定を行わずにO(n ^ 2logn)よりもうまく実行できないn^2要素を並べ替えます。

最後に、O(n ^ 2logn)時間とO(n ^ 2)空間複雑度アルゴリズムがあります。

入力配列のソートされた性質を利用していないので、より良いアルゴリズムがあるはずです。

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

c# - デカルト積+NxM動的配列

私は何時間も解決策を探しましたが、成功しませんでした。うまくいけば、誰かが私を助けることができます。

Mのオリジン郵便番号にN個のアイテムの動的配列があります。

例えば:

アイテム1:11001、54010、60621アイテム2:11001、60621アイテム3:60621

次のような新しい配列を作成したいと思います。

ルート1:11001、11001、60621ルート2:11001、60621、60621ルート3:54010、11001、60621

など-ルート6まで。

提案?

---------------------- Linqを使用せずにこれを実現する方法はありますか?VB.netとLinqは一緒に行きません:)

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

perl - Math :: Cartesian :: Productが祝福されたオブジェクトを返すのはなぜですか?

Math :: Cartesian :: Productは、単純な配列の配列ではなく、祝福されたオブジェクトの配列を返すことに気づきました。理由がわかりませんでした。結果を使用するには、実際に追加の作業を行う必要があります(ただし)...

0 投票する
2 に答える
2067 参照

scala - Scala で結合されたデカルト積とマップ

これは次のフォローアップです:文字列のセットのセットを Scala のデカルト積に拡張する

アイデアはあなたが取りたいということです:

そして戻ってきます:

一般的な解決策は次のとおりです。

次のように使用されます。

Set[Set[A]]理論的には、 type の入力を取得して a を取得する方法があるはずSet[B]です。つまり、要素を結合しながら型を変換するということです。

使用例は、(上記のように) 文字列のセットを取り込み、それらの連結の長さを出力することです。のf関数は、combine次のような形式になります。

私は実装を思いつくことができませんでした。誰か答えがありますか?

0 投票する
2 に答える
4179 参照

python - 「for x in a for y in b in c ...」を順不同で単純化するにはどうすればよいですか?

[更新]欠けているものがあります。実際にfor x in a for y in b for z in c ...、つまり任意の量の構造体がある場合、書くのproduct(a,b,c,...)は面倒です。d上記の例のようなリストのリストがあるとします。もっと簡単にできますか?Python ではfor リストとディクショナリ評価を使用unpackingできますが、それは単なる表記法です。任意の長さのネストされた for ループとそのようなモンスターの単純化は SO を超えています。タイトルの問題は自由回答であることを強調したいので、質問を受け付けても誤解しないでください!*a**b

0 投票する
4 に答える
1261 参照

java - その場で組み合わせ論を行う方法

私は非常に奇妙な問題を抱えており、解決を困難にするいくつかの制約があります。リストのリストがあり、それらのリストのすべてのアイテムの組み合わせを実行したいと思います。各アイテムには名前と値があります。次に例を示します。

メインリスト:

  • リスト01:
    • アイテム01:名前:名前01、値:値01
    • アイテム02:名前:名前02、値:値02
  • リスト02:
    • アイテム01:名前:名前03、値:値03
  • リスト03:
    • アイテム01:名前:名前04、値:値04
    • アイテム02:名前:name05、値:value05

最終結果は次のようになります。

いくつかのリスト:

  • アイテム01:name01:value01、name03:value03、name04:value04
  • アイテム02:name02:value02、name03:value03、name04:value04
  • アイテム03:name03:value03、name03:value03、name04:value04
  • アイテム04:name01:value01、name03:value03、name04:value05
  • アイテム05:name02:value02、name03:value03、name04:value05
  • アイテム06:name03:value03、name03:value03、name04:value05

新しいリストには、ハッシュマップのように機能するアイテムがほとんど含まれています。

制約は次のとおりです。

  1. これらのリストはすぐに大きくなる可能性があるため、新しいリストにまとめてそれらを混在させることはできません。
  2. 私はある種のオブザーバーのようなAPIを使用しているので、多くのメモリを使用しないように、できるだけ早く結果についてオブザーバーに通知する必要があります。

言い換えると、この組み合わせジェネレーターにはX個のリストが供給され、各リストにはN個のアイテムが含まれる可能性があり、メモリをあまり使用せずにそれらの組み合わせを生成する必要があります。

一度に5つを超えるリストで作業することは期待していませんが、アルゴリズムをコードの変更に対して可能な限り回復力のあるものにしたいと思います。

私はJavaで問題を解決していますが、アルゴリズムは翻訳される可能性が高いため、他の言語でも同様に機能するはずです。

何かアイデアや提案はありますか?

前もって感謝します。

PS再帰がうまくいくとは思いません。whileループといくつかのネストされたループを使用するというアイデアをいじっていますが、これがどのように機能するかを想像するのは非常に困難になっています。

0 投票する
2 に答える
807 参照

sql - O / Rマッピング:単一の複雑なクエリと複数の単純なクエリ

SQLクエリの結果セットがサーバーからクライアントにどのように転送されるのか知りたいです。

ほとんどのO/Rマッパーは、熱心な読み込みと遅延読み込みの両方をサポートしており、どちらにも長所と短所があります。たとえば、Entity Framework4(.NET)は、熱心なロードサポートを備えています。

ただし、次のようなモデルがあると仮定します。

..。

そしてこのようなクエリ:

これにより、単一のSQLクエリが生成され、「投稿」のすべてのデータが「コメント」ごとに各行で繰り返されます。

特定の投稿に100件のコメントがあり、Post.Bodyは膨大な量のテキストであるとします。これは良くないのですか?または、データをクライアントに送信するときに何らかの形で圧縮されているため、各行でデータを繰り返すオーバーヘッドが最小限に抑えられていますか?

そのようなクエリの1つが2つの単純なクエリ(1つは投稿の取得用、もう1つはコメントの取得用)よりも効率的かどうかを判断するための最良の方法は何ですか?

開発環境でこれをベンチマークすることは非常に無意味です。ここには複数の要因があります。SQLサーバーのCPU負荷ネットワーク負荷アプリサーバーのCPU負荷(オブジェクトの実体化)

これについてのアイデア?

[編集]説明:

2つのクエリは次のようになります。

sql

結果

sql

結果

最初のクエリは1行を生成し、2番目のクエリはコメントと同じ数の行を生成します。

単一のクエリでは、特定の投稿のコメントと同じ数の行がありますが、すべての投稿データが各行で繰り返されます。

結果

p.bodyは各行で繰り返されるため、結果セットは非常に大きくなります。(p.bodyに多くのデータが含まれていると仮定します;-)

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

list - スキームで2リストのリストを生成する

を呼び出すと(cart-product '(q w) '(x y))が生成され(((q x) (q y)) ((w x) (w y)))ます。

代わりにどのように生産でき((q x) (q y) (w x) (w y))ますか?

0 投票する
4 に答える
8700 参照

nhibernate - NHibernate 3.0.0 使用時のデカルト積 (x-join) との戦い

私は数学が苦手ですが、デカルト積が何であるかはなんとなくわかります。
これが私の状況です(簡略化):

私の目的は、プロジェクト全体を効果的にロードすることです。

もちろん問題は次のとおりです。

  • パートナーとそのコストを熱心に読み込もうとすると、クエリは膨大な数の行を返します
  • Partner.Costs を遅延ロードすると、db はリクエスト スパムを取得します (これは最初のアプローチよりも少し高速です)。

私が読んだように、一般的な回避策は MultiQueries を使用することですが、ちょっとわかりません。
ですから、この正確な例を通して学びたいと思っています。

プロジェクト全体を効果的にロードするには?

Ps 私は NHibernate 3.0.0 を使用しています。
hql または文字列形式の基準 API アプローチで回答を投稿しないでください。