問題タブ [greedy]

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

regex - Snow Leopard で動作していた perl スクリプトが Lion では動作しなくなった

以前は、デスクトップ上で次の形式のファイルの任意のセットを取得していました。

スクリーンショット 2011-11-08 at 8.10.23 AM.png

スクリーンショット 2011-11-08 at 8.08.57 AM.png

それらに対してPerlスクリプトを実行し、それらの名前を

SS-2011-11-08 at 8.10.23 AM.png

SS-2011-11-08 at 8.08.57 AM.png

これは機能しなくなり、名前の変更は行われません。変更する必要があるので、次のように変更したいと思います。

ss-2011.11.08.at.8.10.23.AM.png

ss-2011.11.08.at.8.08.57.AM.png

  • 「スクリーンショット」を常に「ss」に置き換えます。
  • -すべてをに置き換えます.
  • すべてのスペースを.

私はそれが貪欲に関係していることを知っていますが、私はこれを書いていませんでした. 私は自分の人生で数時間ずっとperlを使用してきました。私はこれをphpで数行で行うことができると思いますが、デバッグできることは常に良いことなので、perlで保持する方法を学びたいと思います. regs フォーマット規則を調べましたが、適用されません。Mac OS X Lion のどこかがおかしくなっているのか、Snow Leopard が許してはならないことが起こってしまったのかのどちらかです。

皆さん、ありがとうございました!

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

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

regex - Perl 正規表現を貪欲でないようにすることはできません

私の正規表現は、私が何をしても、行の最後のアルファベット文字セットと一致します。最初の出現のみに一致させたい。

貪欲でない演算子を使用してみましたが、それは頑固に右端のアルファ文字セットに一致します。この場合、$1 に値「Trig」を与えますが、これは私が望むものではありません。$1 を「02.04.07.06 Geerite」にしたい。

コード

ソース

02.04.07.06 Geerite Cu8S5 R 3m、R 3m、または R 32 Trig

出力

NT2 32 トリガー | | |

つまり、次の出力が必要です。

NT2 02.04.07.06 ゲーライト | | |

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

algorithm - 貪欲なアルゴリズムを使用してナップザックの問題を追跡する方法は?

問題は、次の情報を使用して貪欲なアルゴリズムでナップザックの問題を追跡する方法です。

誰かがこれを理解するのを手伝ってくれたり、正しい方向に向けてくれたりしてくれたら幸いです。

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

algorithm - 再結合された m セットの最小 nr を見つける最速の方法には、別の m+1 セットが含まれます

以下に実際の例を示します。

としましょうm = 4

インデックスのセットを見つける必要A = { 1, 2, 3 }U (Seti)あります。基数は最小でなければなりません。Set5iAA

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

algorithm - グラフを切断せずに削除できるエッジはありますか?

始める前に、はい、これは宿題です。過去 14 時間、この問題を解決するためにできる限りの努力をしなければ、ここに投稿することはなかったでしょう。

問題は次のとおりです。線形だけでなく、O(V)時間で、接続された無向グラフからエッジを切断せずに削除できるかどうかを確認したい。

私がこれまでに到達したこと:

グラフを切断せずにサイクル エッジを削除できるので、グラフにサイクルがあるかどうかを確認するだけです。使用できる方法は 2 つあります。1 つは DFS で、バック エッジがあるかどうかを確認します。もう 1 つは、Vs と Es をカウントし、|E| かどうかをチェックすることです。= |V| - 1、それが true の場合、グラフはツリーであり、切断せずに削除できるノードはありません。

前のアプローチはどちらも問題を解決しますが、どちらも O(|E|+|V|) を必要とし、本にはもっと速い方法があると書かれています (それはおそらく貪欲なアプローチです)。

ヒントをいただけますか?

編集:より具体的には、これは私の質問です。接続されたグラフ G=(V,E) が与えられた場合、E の一部のエッジ e を削除して、結果のグラフを接続したままにすることはできますか?

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

algorithm - 貪欲なアプローチはここで機能しますか?

Nグループの人々とMテーブルがあるとします。各グループのサイズと各テーブルの容量がわかっています。同じグループの2人が同じテーブルに座っていないように、どのように人々をテーブルに一致させるのですか?

貪欲なアプローチはこの問題に対して機能しますか?(貪欲なアプローチは次のように機能します。各テーブルについて、さまざまなグループの人々でテーブルを「埋める」ようにしてください)。

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

greedy - 8 ビット シーケンスでのハフマン符号化証明

データ ファイルには、256 文字すべてがほぼ同じように 8 ビット文字のシーケンスが含まれています。最大文字頻度は、最小文字頻度の 2 倍未満です。この場合のハフマン符号化は、通常の 8 ビット固定長符号を使用するよりも効率的ではないことを証明してください。

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

algorithm - バスの運転手:uva 11389

問題はこちら: http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2384

貪欲なアプローチを使用して、この問題を解決することができました。朝のルートを降順、夜のルートを昇順に並べ替え、朝のルートの最大値を夕方のルートに最小値で並べました。この解決策は受け入れられました。私は、問題が貪欲な選択特性を持っていること、つまり、貪欲な選択が最適解の一部であることを証明しようとしています。誰か証明を手伝ってくれませんか。私は練習のためだけにこの証明を行っています

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

java - 貪欲なアクティビティ セレクタ アルゴリズム: 講堂の最小量での n 個のアクティビティの擬似コード

この問題の答えを理解しようと何時間も費やしました。私はそれを理解していません。答えに基づいてこの問題を解決するアルゴリズムの疑似コード (できれば Java に似た疑似コード) を教えてください。そうすれば、答えが何を言おうとしているのかを理解するのに役立ちます。

質問と回答:

すべてを入力するよりも、この PDF の方が適切にスタイル設定されています。問題は、pdf の最初の問題、Exercise 16.1-4 です。

http://mitpress.mit.edu/algorithms/solutions/chap16-solutions.pdf

(明確にするために、彼は宿題ではありません。私は本の仕事をしていて、この問題を理解したいと思っています。リンクは問題の解決策ですが、私はそれを理解していません。それが何を意味するのか理解していません」そのためには、活動の開始と活動の終了からなる一連のイベントを、イベント時間の順に進めてください...」と、残りの説明です。これが説明していることの疑似コードを私はそのように読んで理解することができました. 関数のパラメータが何であるか、関数内で何が起こっているか、アクティビティがどのように繰り返されるか、それらがどのように講堂などの忙しい配列と空いている配列の2つのリストなど)ありがとう

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

python - 重みと最小値を使用して整数を配布しますか?

同様の質問で、重みを使用して整数を分散する方法を尋ねました。各分布の「バケット」に最小値が課された場合、この問題にどのようにアプローチするのか興味があります。最小値を課すことにより、これははるかに難しい問題のように思われます。これが私の貪欲な試みですが、うまくいきません:

現在、値は[7、5、4]として配布されます。これは、配布する必要があるよりも6多い16です。出力は[1、5、4]である必要があります。これは、すべての列の最小要件を満たしているためです。分布しなければならない値が大きくなるにつれて、分布は正しい加重分布にますます近づくはずです。たとえば、1000を分散することにより、アルゴリズムは値を[714、143、143]として正しく分散します。

As a side note, my purpose is to distribute available space (width) among several columns. All columns have a minimum size needed to "get by" and display at least some of their data, and some columns are more in need of space as the available space grows. I mention this as one real life use for this algorithm, but I don't want this to be a discussion of GUI design.

What are some solutions to this problem? The simpler the better.