問題タブ [partial-ordering]

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 投票する
1 に答える
47 参照

sql-server - LINQ & SQL Server : 開始行から並べ替える

usernamefollowerCountおよびの 3 つの列を持つテーブルがありますCreateDate

テーブルには約 110000 人のユーザーがいて、ユーザーの順番を表示しようとしていますfollowerCount。私は次のようにします:

したがって、2 番目のページでは、最初のページから最後に渡しfollowerCount、次のページを受け取ります。

しかし、テーブルにはフォロワー数が同じユーザーがいます。たとえば、250 人のユーザーに 5000 人のフォロワーがいるとします。そのため、ページングを行うと、5000 フォロワーのユーザーが増えているため、次のページを正しく取得できません。

たとえば、私は 9 ページにいて、最後のユーザーには 5001 人のフォロワーがいて、5001 をストアド プロシージャに渡し、5000 人のユーザーを持つ 50 人のユーザーを取得します。しかし、さらに 200 人のユーザーがいて、今度は 5000 (前のページングの最後の数字) を再びストアド プロシージャに渡すと、残りはすべてスキップされ、4xxx フォロワーを持つユーザーが表示されます。

同じ数のフォロワーを持つ正しいユーザーを連れてくるにはどうすればよいですか?

訂正: この目的のために Entity Framework を使用しています。わかりやすいように SQL ステートメントを掲載しました。

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

c++ - 割り当てに対する 2 つの副作用が順序付けされていないかどうかを判断する方法は?

§5.2.6/1から(強調は私のものです):

後置 ++ 式の値は、そのオペランドの値です。[ 注: 得られた値は元の値のコピーです — 末尾の注 ] オペランドは変更可能な左辺値でなければなりません。オペランドの型は、cv bool 以外の算術型、または完全なオブジェクト型へのポインターでなければなりません。オペランド オブジェクトの値は、それに 1 を追加することによって変更されます。++ 式の値の計算は、オペランド オブジェクトの変更の前に順序付けられます. 不定順序の関数呼び出しに関しては、後置 ++ の操作は単一の評価です。[ 注: したがって、関数呼び出しは、左辺値から右辺値への変換と、単一の後置 ++ 演算子に関連する副作用との間に介在してはなりません。— 終わりの注 ] 結果は prvalue です。結果の型は、オペランドの型の cv 非修飾バージョンです。オペランドがインクリメントされた値を表すことができないビットフィールドである場合、ビットフィールドの結果の値は実装定義です。[expr.add] と [expr.ass] も参照してください。

つまり、オペランド オブジェクトの変更は、式の値の計算の++に順序付けられます。

§5.18/1から(強調は私のものです):

代入演算子 (=) と複合代入演算子はすべて右から左にグループ化されます。すべてが左オペランドとして変更可能な左辺値を必要とし、左オペランドを参照する左辺値を返します。左オペランドがビットフィールドの場合、結果は常にビットフィールドになります。いずれの場合も、代入は、右オペランドと左オペランドの値の計算の後、代入式の値の計算の前に順序付けられます。不定順序の関数呼び出しに関しては、複合代入の操作は単一の評価です。[ 注: したがって、関数呼び出しは、左辺値から右辺値への変換と、単一の複合代入演算子に関連する副作用との間に介在してはなりません。— エンドノート]

代入式:
      条件式
      論理和式 代入演算子 初期化句
      スロー式

代入演算子:
      = *= /= %= += -= >>= <<= &= ^= |=のいずれか

代入は、代入演算子の左右のオペランドの値計算の後にも順序付けされます。

ということで、式を考えると

§5.2.6/1 からi++、この代入式の RHS に対する式 の副作用は、 の値計算の後に続くことがわかりi++ます。また、§5.18/1 から、代入演算子の LHS への代入に対応する副作用iは、代入演算子の右オペランドと左オペランドの値計算の後に並べられることがわかります。

i = i++;しかし、式が未定義の動作を示すことを証明するために、これら 2 つの副作用がシーケンス化されていないことをどのように示すのでしょうか?

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

python - Python: 遺伝的アルゴリズムのリストで部分要素を並べ替える

遺伝的アルゴリズムを使用して Job Shop Scheduling の問題を解決したいのですが、コードは Python で記述します。

現在、個人を のリストとして提示しています[job, operation, machine, operation]。たとえば、1 つの染色体の例を次に示します。

リストは、すべてのジョブの操作の優先順位の制約を満たす必要があります。たとえば、リスト内のジョブ 1 の正しい順序は次のとおりです。

つまり、ジョブ 1 (インデックス 0、インデックス 2、およびインデックス 7) の順序付けを行う必要があるのは、他のジョブがその位置に留まっている間だけです。正しい結果は次のようになります。


これまでの私の試み:

ジョブ 1 を含むすべての行を決定/フィルタリングします。

出力

0 投票する
0 に答える
173 参照

python - Z3 による半次数の線形拡張

(小さな) 一連の定数に対する部分順序を指定して、指定された部分順序制約の拡張 (つまり、線形拡張)として構築できる合計順序を見つけるスクリプトを作成しようとしています。

a,b,c,d例として、定数および制約として与えられた場合a>b && b>d、プログラムはこれらの順序付けのいずれか (または可能であればすべて - 線形拡張は#P-complete ) を出力する必要があります。

これがz3pyでの私の最初の試みです:

そして、これらは私の質問です:

  1. として定義された定数に対して全体制約を使用するとタイムアウトになるのはなぜIntSortですか?
  2. モデルのより使いやすい表現を取得する方法はありますか (例: a<b<c<d)? (関連する質問:リンク)
  3. この問題を解決するためのより良い方法またはより適切なツールはありますか?

助けてくれてありがとう!

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

java - メソッドが Java で上書きされているかどうかを確認する

インターフェイスの 2 つのオブジェクトを比較するメソッドを実装したいと思いますTask。には厳密な部分順序しかないため、2 つのオブジェクトが比較できない場合にのみ、TaskpartialCompareTo返す必要があります。null

厳密な半順序付けの概念に混乱している場合は、こちらを確認してください: https://en.wikipedia.org/wiki/Partially_ordered_set

動機: 一部のタスクには、別のタスクの前または後に実行する必要があるという制約があります。次に、これを使用してタスクをトポロジカルに並べ替えます。つまり、すべての制約が満たされるようにタスクを配置します。

Task aおよびのすべてのインスタンスに対して、次のプロパティが必要ですb

  • もしそうa.partialCompareTo(b) != nullならsgn(a.partialCompareTo(b)) = -sgn(b.partialCompareTo(a))
  • もしそうa.partialCompareTo(b) = nullならb.partialCompareTo(a) = null

注:Comparable標準ライブラリのインターフェイスは使用できません。Task: in returnsには完全な順序付けがないためです。2 つのオブジェクトがincomparableである場合、適切な結果を得る方法はありません。特に、その実装のインスタンスが互いに比較できないTask の実装があります(ただし、 をオーバーライドする Task の他のサブクラスのインスタンスと比較できる場合があります)。compareToComparableint partialCompareTo

partialCompareToクラスで指定されたメソッドをオーバーライドする場合、引数のメソッドを使用するという考え方ですTask

次のアプローチは、実際の試行というよりも冗談です。比較できない 2 つのオブジェクトが比較されるたびに StackOverflowError が発生するためです (これはキャッチされますが、とにかくこれは実現不可能です)。

次の実装は明らかに優れていますが、常にヘルパー メソッドをオーバーライドする必要があるという欠点がありますoverridesDefaultPartialCompareTo

メソッドがコードで上書きされているかどうかを確認する方法はありますか?

または、私の問題を解決するための代替アプローチはありますか?

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

java - 非合計順序基準で Java ストリームをソートします。

次のようにしてリストをソートするメソッドを作成しようとしています:

しかし、Comprator の javadocを読みましたが、これは完全な順序関係である必要があります。つまり、2 つのコンパレータが等しくない限り、同じ優先度を持つことはできません。そうではないかもしれません。

私はこの単純なコンパレータを試していました:

もちろん、プロセッサを同等にすることもできますが、すべてのプロセッサへの変更は避けたいと考えています。ストリームで並べ替える方法はありませんか? 別の方法として、独自のメソッドを作成するか、より複雑なコンパレータを作成することもできますが、より洗練されたソリューションがないことに驚いています。

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

isabelle - 部分マップでの順序付けロケールの使用

次のコードは型チェックを行いません:

Isabelle は補題で次のエラーを訴えます。

なんでそうなの?解釈を使用するために何かを逃しましたか?ここには newtype ラッパーのようなものが必要だと思います...

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

c++ - gcc vs. clang、msvc、icc: この関数呼び出しはあいまいですか?

私が手に入れることができたすべてのコンパイラは、これで問題ないと同意しています。

ただし、次のコード (関数パラメーターから推測できない先頭のテンプレート パラメーターを使用) は、gcc によるとあいまいです。

一方、clang、msvc、icc はこれに非常に満足しています。

どのコンパイラが正しいですか?

標準の各セクションへの参照が推奨されます。

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

scala - Scala での半順序によるソート

Scala でコレクションを部分的に並べ替えるには、Scala で PartialOrdering によって並べ替える方法を尋ねます。コメントは、著者が与えられた例で部分的にソートするべきではないと述べています。部分的な順序で並べ替える必要があります-他の国の飛び地である可能性のある国があり、これにより部分的な順序が誘導されます。

List[T]では、 a 、 where Textends が与えられた場合PartialOrdering[T]、部分的な順序に従ってソートする賢明な方法はありますか?