問題タブ [gaps-in-data]

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

oracle - hibernate oracle シーケンスが大きなギャップを生む

私は hibernate 3 、oracle 10g を使用しています。私はテーブルを持っています:件名。定義はこちら

新しいサブジェクトを挿入するとき、サブジェクト ID を作成するために sub_seq が使用されます。定義はここにあります

Subject クラスは次のようになります。

subject テーブルには、Excel から plsql スクリプトによってロードされたデータベースに 4555 件のサブジェクトがあり、sub_sequence は正常に機能しました。サブジェクト ID の範囲は 1 ~ 4555 です。

ただし、休止状態を使用してアプリケーションからサブジェクトを追加すると、シーケンス番号が 255050 に跳ね上がりました。数日間実行した後、休止状態によって生成されたサブジェクト ID は次のようになります。

いくつかの大きなギャップがあります: 4555 から 255051、255067 から 260051、265057 から 270051

これは無駄であり、望ましい動作ではありません。

なぜこれが起こり、それを修正するのが難しいのか誰もが知っていますか

ありがとう

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

database - ギャップのないシーケンス

トランザクションがロールバックされた場合に、同じ値を再び与えることができるシーケンスが必要です。これはクラスター環境で機能し、高速である必要があります。

言い換えれば、私は私の数え上げに穴を開けたくありません。

例:

同じことを行う5つのトランザクションがあり、すべてのトランザクションで次の値を生成します。

  • トランザクション1:生成された値1。
  • トランザクション2:生成された値2。
  • トランザクション3:生成された値3。
  • トランザクション4:生成された値4。
  • トランザクション5:生成された値5。

ここで、トランザクション「2」と「4」がロールバックされたと仮定します。私が通常のシーケンスを持っていて、次のトランザクションを実行する場合、生成された値は最も適切には「6」になります。私のシーケンスは未使用の値を返すはずなので、この場合は「2」または「4」です。

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

sql - さらに別の日付のギャップを埋める SQL パズル

残念ながら、CROSS APPLY を使用できない Vertica を使用しています。Vertica には CTE のようなものはないようです。

これが私が持っているものです:

初日のデルタはメトリック値と等しいことに注意してください。次のように、ギャップを埋めたいと思います。

私はこれを毎日行う方法を考えてきましたが、私が本当に望んでいるのは、一度に機能するソリューションです。

LAST_VALUE で何かを動作させることができると思いますが、各 ID の日々の履歴を適切に分割して順序付けできる適切な JOIN ステートメントを思い付くことができません。

編集:次のようなテーブルがあるとします:

結合に関与する可能性があります。私の意図は、カレンダーの日付範囲をtの日付範囲と一致するように維持することです。

編集:具体的には、探しているものに関するいくつかのメモ:

t_fillを生成する際に、 tの日付範囲と、その間にない日付を正確にカバーしたいと思います。したがって、正しいt_fillはtと同じ日付で開始し、同じ日付で終了します。 t_fillには 2 つのプロパティがあります。

1) ある日付に ID が表示されると、以降の日付ごとに常に行が表示されます。これは、元の質問で暗示されているギャップを埋めることです。

2) ある日付以降に id の行が再び表示されない場合、t_fillソリューションは、その最後のデータ ポイントの日付からtの終了日まで、同じメトリック値 (および 0 デルタ) を持つ行を陽気に生成する必要があります。

ソリューションは、 tの日付範囲の開始までの以前の日付を埋め戻す可能性があります。つまり、 t の最初の日付の後に表示される id の場合、t最初の日付と id の最初の日付の間の行は、metric=0 と d_metric=0 で埋められます。システムに入る各IDの成長率が高いため、この種のソリューションは好みません。しかし、metric!=0 および d_metric!=0 の行のみを新しいテーブルに選択することで、簡単に対処できました。

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

java - バブルソートからギャップソートへの変更

私は問題に遭遇しました、そしてあなたの指導が必要です。基本的に私はこのバブルソートメソッドを作成することができました。これをギャップソートに変更するにはどうすればよいですか。リスト全体で隣接する要素を毎回比較するのではなく、数(i)の位置だけ離れている要素を比較します。ここで、(i)はn未満の整数です。たとえば、最初の要素は(i + 1)要素、2番目の要素は(i + 2)要素、n番目の要素は(ni)要素などと比較されます。すべての要素が完了すると、1回の反復が完了します。比較できる、比較されています。次の反復で、iは1より大きい数だけ減少し、プロセスはiが1未満になるまで続行されます。

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

global - プッシュ再ラベルアルゴリズム

push-relabel FIFO コードの MATLAB バージョンを実行しました (wikipedia のものとまったく同じで、試してみました。放電関数は wikipedia とまったく同じです。

これは、小さなグラフ (ノード数 = 7 など) に最適です。ただし、グラフのサイズを大きくすると (つまり、ノード/頂点の数 > 3500 以上)、「ディスチャージ」関数で呼び出される「再ラベル付け」関数の実行が非常に遅くなります。グラフが巨大 (つまり > 3000 ノード) であるため、コードを最適化する必要があります。

グローバルな再ラベル付け/ギャップの再ラベル付けに関する WIKIPEDIA の提案に従って、コードを最適化しようとしました。2) ギャップヒューリスティックを使用します。

私は最初のもので立ち往生しています。詳細が省略されているように見えるので、正確に何をしなければならないのかわかりません。(頂点 u の場合、u に接続されたノード v(1..n) が既に隣接リストにあるように隣接リストを作成しましたが、見た [u] インデックスで反復する方法がわからないだけです)。

AND 放電関数は、「s」近傍構造体リストを使用します。

while (excess(u) > 0) %現在のノードの超過が >0 かどうかをテストし、そうであれば...

終わり

誰かが私を指示したり、見せたり、助けてくれませんか?

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

heuristics - push-relabel ギャップ ヒューリスティック

push relabel を使用してギャップヒューリスティックを実装する方法がわかりません。Wiki では次のように説明されています。

「ギャップ再ラベル付けヒューリスティックでは、サイズ n の配列 A を維持し、A[i] に各ラベルのノード数 (n まで) を保持します。A[d] = 0 のようなラベル d が見つかった場合、ラベル > d を持つすべてのノードは、ラベル n に再ラベル付けされます。"

ギャップヒューリスティックを使用します。ノードの高さ (u) = k がないような「k」がある場合、ソースを除くすべてのノードに対して高さ (u) = max(高さ (u)、高さ (ソース) +1) を設定できます。 (u) >k. これは、そのような 'k' がグラフの最小カットを表し、ノード S={u where height(u) > k} から T={v, where height(v) のノードにフローが移動しないためです。 0. しかし、その後は height(u) > height(v)+1 となり、height(u) > k および height(v) < k と矛盾します。

wikiのサンプルコードに示されているように、FIFOプッシュリラベルにギャップヒューリスティックを追加する方法を疑似コードで説明してもらえますか?

ありがとう、ヴィンス

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

mysql - テーブル内の NULL のギャップを平均値で埋める

フィールド(id,letter,date)といくつかのデータを含むテーブルがあります。

NULL 値に最も近い非 NULL 値の平均日付を入力したいと考えています。そのように:

または、おそらく、そのように:

どちらのバリエーションも素晴らしいです。MySQL に実装する簡単な方法はありますか?

前もって感謝します

UPD テーブルはかなり大きく、約 700.000 のレコードと、説明されているような約 50.000 のギャップがあります。

UPD2 少しすっきり: テーブルは次のようになります:

期待される結果は次のようになります。

(アスタリスクは、変更された値に注意することです)。ありがとう

UPD3 みんなありがとう。しかし、単純な式で日付を計算する別の方法でそれを行うだけです。 )) + 分(日付)

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

matlab - Matlab でギャップのある 1 つのデータセットからいくつかのギャップのない行列 (または構造) を作成する

時系列にギャップのあるデータがあります。ギャップのインデックスが見つかり、長さとすべてが見つかります。問題は、データ (列: 時間と測定値) をいくつかの行列/ベクトルに切り刻むか、構造に切り刻むことです。私の計画は、これらの小さな時系列をさらに比較するためにフーリエ変換することです。

例で説明してみましょう: Tdat は時系列で、3825 ポイントがあります

ここのギャップの数は 8 です

ギャップのないデータ系列の数は 9 です

これらのギャップ間のポイント数は 425 です。

したがって、データのみを持ち、各長さ 425 の時間ギャップのない 9 つの異なる行列/ベクトルが必要です。

答えを見つけるのに十分な方法はありますか、それとも十分に検索していませんか?