問題タブ [set-intersection]
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.
mongodb - mongodbのサーバー側セット交差点
私が取り組んでいるアプリケーションでは、10 ~ 1,000,000 アイテム程度の大量のセット交差を行う必要があります。交差しているアイテムは、単に ObjectId のものです。
たとえば、box ドキュメントがあり、box ドキュメント内に item_ids Array があります。各ボックスのこの item_ids 配列には、10 ~ 1,000,000 個の ObjectId が保持されます。
ここでの最終目標は、ObjectId 4d3dc3898951498107000005 のボックス A と ObjectId 4d3dc3898951498107000002 のボックス B が与えられた場合、どの item_id が共通しているかということです。
これが私がそれをしている方法です:
まず、これが正気なアプローチのように見えるかどうかに興味があります。これまでの私の調査では、大規模な交差点では map reduce が一般的に提案されているようですが、リアルタイム クエリにはお勧めできません。
次に、シャード環境でこれがどのように動作するか興味がありますか? mongos は必要な mongod でクエリのチャンクを実行し、私の結果を魔法のように集計しますか?
最後に、上記が正気である場合、次のことも正気ですか。
これは基本的に、ボックス A とボックス B の両方に共通するアイテムを見つけ、それらをすべて 1 つのサーバー側クエリでオブジェクトに具体化することです。これは、データ セットのページングを効果的に実装するために、.limit および .skip とも連携しているようです。
とにかく、どんなフィードバックも貴重です、ありがとう!
google-app-engine - Appengine データストアでの操作の設定
これを行う良い方法はないと思いますが、そうしなければならない場合、Appengine のデータストアに set 操作をどのように実装しますか?
たとえば、整数の 2 つのコレクションが与えられた場合、交差操作と除外操作 (B にはない A のすべての項目) で良好なパフォーマンスを得るには、それらをデータストアにどのように格納しますか?
c++ - set_intersection でコンパイラがエラーを表示するのはなぜですか?
私は2つの属性を持つクラスを持っています:
これで、これら 2 つのセットの交点を見つけるメソッドができました。これが私の方法で書いたものです:
stl_algo.h 内のコンパイルでエラーが発生しますが、エラーを修正するためにどこから始めればよいかわかりません
お時間をいただきありがとうございます
エティエンヌ
java - Hadoop を使用して 2 つのファイルのレコードのセットの交差とセットの差を計算する
これを Hadoop ユーザーのメーリング リストとここにクロスポストして申し訳ありませんが、これは私にとって緊急の問題になっています。
私の問題は次のとおりです。2つの入力ファイルがあり、特定したい
- a) ファイル 1 にのみ出現する行数
- b) ファイル 2 にのみ出現する行数
- c) 両方に共通の行数 (例: 文字列の等価性に関して)
例:
各ケースの望ましい出力:
基本的に私のアプローチは次のとおりです。マッパーが行 (テキスト) とソース ファイルを示すバイト (0 または 1) で構成されるペアを受け取るように、独自の LineRecordReader を作成しました。マッパーは再びペアを返すだけなので、実際には何もしません。ただし、副作用は、コンバイナが
(ここで、SourceId は 0 または 1 です)。
これで、行ごとに、それが表示されるソースのセットを取得できます。したがって、ケース (a、b、c) ごとに行数をカウントするコンバイナーを作成できます (リスト 1)。
次に、コンバイナーはクリーンアップ時にのみ「概要」を出力します (それは安全ですか?)。したがって、この要約は次のようになります。
レデューサーでは、これらの集計の値のみを合計します。(したがって、レデューサーの出力は、コンバイナーの出力とまったく同じように見えます)。
ただし、主な問題は、両方のソース ファイルを単一の仮想ファイルとして扱い、(line, sourceId) // sourceId 0 または 1 の形式のレコードを生成する必要があることです。
そして、それを達成する方法がわかりません。したがって、問題は、事前にファイルの前処理とマージを回避し、仮想マージ ファイル リーダーやカスタム レコード リーダーのようなものを使用してオンザフライで実行できるかどうかです。コード例は大歓迎です。
よろしく、クラウス
リスト 1:
r - Intersection of lists in R
Is there a function that receives a list x
and returns a list y
such that y[[i]] = intersect(x[[1]][[i]], x[[2]][[i]], ...)
?
If not, is there a R way to code it in a couple of lines?
c++ - 2 つの異なるタイプのセットの set_intersection
2 つの異なるタイプのセットで std::set_intersection を実行する方法はありますか?
私は2つのセットを持っています:
X1 と X2 が等しいかどうかをチェックするコンパレータを定義できます。
ここで、これら 2 つのセットでセットの交差を試みます。
残念ながら、このコードを機能させることはできません。これが可能かどうかさえわかりませんが、set_intersection の説明から、 2 つの異なる反復子を使用できることがわかります。
目的のコード サンプルを検索しようとしましたが、見つかりませんでした。誰かが私の問題の実際のコード サンプルを提示してくれませんか?
更新: エラーは次のとおりです。
エラー: stl_function.h:227: '__x < __y' の 'operator<' に一致しません
前もって感謝します!
c# - セットのすべてのレコードに存在するデータセット内のフィールドを見つけるためにlinqクエリを実行するにはどうすればよいですか?
それぞれがフィールドのセットを含む10KレコードのXMLデータセットがあります。
データセットに一致するデータベーススキーマで、どのフィールドをnullにする必要があり、どのフィールドをnullにすることができないかを知りたいのですが。
linqは大きな交差点を生成する方法を提供しますか?
例:
プロトタイプ:
望ましい結果:
python - Python:交差点に基づく単純なリストのマージ
次のような整数のリストがあると考えてください。
問題は、少なくとも1つの共通要素を持つリストをマージすることです。したがって、特定の部分のみの結果は次のようになります。
大きなデータ(要素は単なる数値)でこれを行う最も効率的な方法は何ですか?tree
構造について考えることはありますか
?私は今、リストを交差点に変換して反復することで仕事をしていますがsets
、遅いです!さらに、とても初歩的な感じがします!さらに、一部のリストはいつかマージされないままであるため、実装には何か(不明)が欠けています!そうは言っても、自己実装を提案する場合は、寛大で、簡単なサンプルコード[明らかにPythonが私のお気に入りです:)]または疑似コードを提供してください。
更新1:
これが私が使用していたコードです:
関数は(バグあり!!):
結果は次のとおりです。
更新2:
私の経験では、以下のNiklas Baumstarkによって提供されたコードは、単純なケースでは少し速いことが示されました。「Hooked」によって与えられた方法は完全に異なるアプローチであるため、まだテストされていません(ちなみにそれは興味深いようです)。これらすべてのテスト手順は、結果を保証するのが非常に難しいか、不可能である可能性があります。私が使用する実際のデータセットは非常に大きく複雑であるため、繰り返すだけではエラーを追跡することはできません。つまり、モジュールとして大きなコード内でメソッドをその場所にプッシュする前に、メソッドの信頼性に100%満足する必要があります。単純に今のところ、 Niklasの方法はより高速であり、単純集合の答えはもちろん正しいです。
しかし、実際の大規模なデータセットでうまく機能することをどのように確認できますか?エラーを視覚的に追跡することができないので!
更新3: この問題では、メソッドの信頼性が速度よりもはるかに重要であることに注意してください。最終的に最大のパフォーマンスを得るために、PythonコードをFortranに変換できるようになることを願っています。
更新4:
この投稿には多くの興味深い点があり、寛大に答え、建設的なコメントが与えられています。すべてをよく読むことをお勧めします。質問の展開、驚くべき答え、建設的なコメントと議論に感謝します。
c++ - STL集合の交差点と出力
このようなコード スニペットを VC++ 2010 でコンパイルします。
私が知る限り、これはうまくいくはずです。ただし、ビルド エラーが発生します。
そのために、明示的なテンプレート パラメーター宣言を行いました。
しかし、私は同じエラーがあります。ここでの問題は、2 番目のケースで const_iterator を渡すと、パラメーターの型が一致しないため、const_iterator と iterator の間の変換エラーで失敗することです。ここで何が欠けていますか?(set_intersectionの「挿入」形式については知っていますが、ここで何が間違っているのかを知りたいです)
c++ - C ++でのset_intersectionの複雑さは何ですか?
次のコードの複雑さは何ですか?
ここでS1
、およびは空でないS2
セットでans
あり、空のセットです。
ソートされた範囲をセットに挿入することは線形であることを私は知っています。しかし、インサーターリニアを使用して挿入することもできますか?