問題タブ [set]
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.
java - Java でのパーティションの生成
整数 (x と呼びましょう) が与えられ、配列の配列を生成する必要があります。ここで、各サブ配列は、指定された整数セットの 1 つである要素のリストであり、各サブ配列のすべての要素の合計です。 ×です。配列の配列には、この形式のすべての可能な個別のサブ配列を含める必要があります。
たとえば、x が 3 で、可能な要素のリストが {1, 2} の場合、{{1, 2}, {2, 1}} を生成しようとしています。
これを行うための最良の方法は何ですか(疑似コードまたはJavaで)?この 2D 配列は、このタイプのデータを格納するための最良の方法ですか? これ以上良いものは思いつきませんでしたが、そこには何かがあると思います。
algorithm - 少なくとも 2 つの要素を共有するセットをマージするアルゴリズム
セットのリストが与えられた場合:
- S_1 : [ 1, 2, 3, 4 ]
- S_2 : [ 3, 4, 5, 6, 7 ]
- S_3 : [ 8, 9, 10, 11 ]
- S_4 : [ 1, 8, 12, 13 ]
- S_5 : [ 6, 7, 14, 15, 16, 17 ]
少なくとも 2 つの要素を共有するすべてのセットをマージする最も効率的な方法は? これは連結成分の問題に似ていると思います。したがって、結果は次のようになります。
- [ 1, 2, 3, 4, 5, 6, 7, 14, 15, 16, 17] (S_1 ユニオン S_2 ユニオン S_5)
- [ 8, 9, 10, 11 ]
- [ 1, 8, 12, 13 ] (S_4 は S_1 と 1 を共有し、S_3 と 8 を共有しますが、それぞれで 1 つの要素しか共有しないため、マージされません)
単純な実装は O(N^2) です。ここで、N はセットの数であり、これは私たちには機能しません。これは、何百万ものセットに対して効率的である必要があります。
algorithm - 集合和集合演算の実行時間
2つのセットAとBが与えられた場合、それらの和集合を見つけるために使用される一般的なアルゴリズムは何ですか、そしてそれは実行時間ですか?
私の直感:
Addは、O(1)である衝突のチェックを追加してから、(??)である要素を追加します。これはn回行われます(nは| a | + | b |)。したがって、これはO(n * x)です。ここで、xは追加操作の平均実行時間です。
これは正しいです?
vba - Web Cookie の設定/取得
サーバー側のスクリプトを実行していないと仮定すると、VBA コード内から Cookie を取得するにはどうすればよいset
でしょget
うか?
delphi - Delphi セットをデータセットに保存する最良の方法は何ですか?
タイトルはほとんどそれをすべて言います。オブジェクトの配列を格納するために TClientDataset を使用していますが、オブジェクトの 1 つに列挙型のセットとして定義されたメンバーがあります。私が理解しているように、Delphi セットは、含まれるデータの量に応じてサイズが 1 から 32 バイトまで変化するビットフィールドであり、Delphi は TSetField を定義していません。この値をロードするには、どの種類のフィールドを使用すればよいですか?
python - 関数セットは、2 つのオブジェクトが異なるかどうかを確認するために何を使用しますか?
簡単なコード:
OK、結果のセットに重複はありません。リスト内のオブジェクトが int ではなく、私が定義したものである場合はどうなりますか? それらが異なるかどうかを理解するためにどのような方法でチェックしますか? いくつかのオブジェクトで __eq__ と __cmp__ を実装しましたが、setはそれらを使用していないようです:\
これを解決する方法を知っている人はいますか?
c++ - 要素をその場で削除する最良の方法
繰り返し処理する一連のオブジェクトがありますが、繰り返し処理中に、これらのオブジェクトの 1 つ (または複数) を削除する必要があると判断する場合があります。
私のコードは次のようになります。
しかしもちろん、オブジェクトを消去すると、「Map / set iterator not incrementable」というエラーが表示されます。誰かがこれを行うためのより良い方法を提案できますか?
c# - .NET 汎用セット?
.NET で「設定」動作を実装する汎用コンテナーはありますか?
Dictionary<T, Object>
そのキーはセットとして機能するため、 a を使用するだけでよい(そして値として追加することもできる) ことはわかってnulls
いますが、何か既製のものがあるかどうかに興味がありました。
algorithm - スパース整数セットを表す?
整数のスパース セット (実際には C メモリ アドレス) をコンパクトで高速な方法で表現する良い方法は何ですか。ビットベクトルやランレングス エンコーディングなどの明らかなことについては、すでに知っています。しかし、セット要素ごとに 1 つの単語よりもはるかにコンパクトなものが必要です。要素を追加および削除し、メンバーシップをテストする必要があります。ユニオンのような他のセット操作は必要ありません。
何年も前にそのような図書館について読みましたが、その名前を忘れてしまいました。HPによってオープンソースとしてリリースされ、女性の名前が付けられたと思います。
c# - C#で整数のセットを生成する
F#では、[1..100]と言うだけで、一連の数値を生成できます。
C#でも同様のことをしたいです。これは私がこれまでに思いついたものです:
これにより、1.To(100)と言ってセットを作成できるようになりました。
残念ながら、これは[1..100]ほど読みやすくありません。誰かがC#でこれを行うためのより良い方法を思いついたことがありますか?小文字の方が読みやすいですか?たとえば、1.to(100)?または、「To」は悪い言葉ですか?1.Through(100)のようなものはもっと読みやすいですか?
いくつかの考えを探しています。他の誰かがもっとエレガントな解決策を思いついたことがありますか?
編集: 応答を読んだ後、次の範囲を使用してToメソッドを書き直しました。
1.To(100)の読みやすさについての考えをまだ探しています