問題タブ [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 投票する
7 に答える
167 参照

python - Pythonで正規表現を脱欲化する

ファイル拡張子を除いた特定のファイルタイプのフルパスファイル名を短いファイル名に変換する正規表現を作成しようとしています。

たとえば、次の文字列から.barファイルの名前だけを取得しようとしています。

Python re docsによると、*?は貪欲でないバージョンな*ので、

のために戻ったmatch.group(1)が、代わりに私は得た

私はここで貪欲について何が欠けていますか?

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

algorithm - 回転ベースのゲームのための貪欲なアルゴリズム

C# を使用してカード ゲームに貪欲なアルゴリズムを実装する方法を知る必要があります。ゲームはターンベースのゲームです。AI がいくつかのカードを発行する必要がある場合は、既にテーブルにある他のカードの最新の状態に基づいている必要があります。誰かがこれに対する解決策を持っていますか、それとも私が始めるためのリファレンスですか? 前もって感謝します!

今のところ、カードをシャッフルするコードのみを完成させました。

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

python - 貪欲な複数のナップザック (ビンの数を最小化/削減)

実際、私はすでにこの質問に対する部分的な答えを持っていますが、この貪欲なコードの小さな断片を一般化して、最適な解決策に近づけることができるかどうか疑問に思っています.

この問題にどのように遭遇したか(問題自体には関係ありませんが、興味深いかもしれません):

オブジェクトの大規模なコレクション (堤防のプロファイルのセットであり、各堤防はその長さに沿って多かれ少なかれ同じ形状を維持します) を受け取り、プロパティ (堤防の名前) に従ってそれらをグループ化できます。私のプログラムの出力は、手動で呼び出す必要がある外部プログラムに送られ (理由は聞かないでください)、失敗から回復することはできません (1 つの間違いでバッチ全体が停止します)。

私がこれを使用しているアプリケーションでは、ビンの量やビンの最大サイズに厳しい要件はありません。私がやろうとしていることは

  • グループの数を少なく保ちます (プログラムを数回呼び出します)。
  • セットを小さく保つ (バッチが失敗した場合のダメージを減らす)
  • 似たようなものをまとめる (グループの失敗は、おそらくグループ全体の失敗です)。

あまり時間がなかったので、セットをグループ化する小さな貪欲な関数を書きました。

同僚は、データにノイズを追加して、見つけた近似解の近傍を探索することができると提案しました。

真の最適解を必要としない元のタスクに関連しているわけではありませんが、この質問をコミュニティと共有して、そこからどのようなコメントが出てくるか見てみようと思いました。

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

algorithm - ダイクストラアルゴリズムの問​​題

グラフにダイクストラアルゴリズムを適用して、結果のツリーが2つの指定された頂点の間にエッジを持たなければならないような方法でMSTを見つけるにはどうすればよいですか?(例:MSTにはXとYの間のエッジが含まれている必要があります)

ありがとう

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

multithreading - cilkのマルチスレッドプログラミングにおける貪欲なスケジューリング

cilkのマルチスレッドプログラミングの貪欲なスケジューリングの完全なステップと不完全なステップを理解するのに問題があります。

参考までにパワーポイントのプレゼンテーションを示します。

Cilk++マルチスレッドプログラミング

私が理解している問題は、スライド#32-37にあります。

誰かが特にどのように説明できますか

お時間を割いていただきありがとうございます

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

algorithm - ローカル最適解がグローバル最適と等しいのはいつですか?欲張りアルゴリズムについて考える

最近、私はいくつかの欲張りアルゴリズムの問​​題を見てきました。私は局所的に最適であると混乱しています。ご存知のように、欲張りアルゴリズムは局所的に最適な選択肢で構成されています。しかし、局所的に最適な決定を組み合わせることは、必ずしも全体的に最適であることを意味するわけではありませんよね?

例として変更を加えます。15¢を作るために最小数のコインを使用します。10¢、5¢、および1¢のコインがある場合、1つの10¢と1つの5¢でこれを達成できます。しかし、12¢コインを追加すると、(1×12¢+ 3×1¢)は(1×10¢+ 1×5¢)よりも多くのコインを使用するため、欲張りアルゴリズムは失敗します。

Huffman、Dijkstraなどの古典的な欲張りアルゴリズムを考えてみましょう。私の意見では、これらのアルゴリズムは縮退したケースがないため成功しています。つまり、局所的に最適なステップの組み合わせは常にグローバルな最適と等しくなります。分かりますか?

私の理解が正しければ、欲張りアルゴリズムが最適かどうかを確認するための一般的な方法はありますか?

サイトの他の場所で欲張りアルゴリズムの議論を見つけました。ただし、問題の詳細についてはあまり詳しく説明しません。

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

javascript - 正規表現の最小一致

こんな表現をしています。

ブラケットの最初のペア内に任意の文字 (文字、数字、句読点など) を含む可能性のある 4 番目の要素を一致させたいのです[d .-][]が、ブラケットの 2 番目のペアは空のままです。などの他の要素には[a][1]、任意の文字を含めることができますが、2 番目の括弧のペア内に数字が含まれます。

私はこれを試しました:

しかし、それは貪欲すぎる。

どんな助けでも大歓迎です。

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

algorithm - 欲張り vs ダイナミック

アルゴリズムに関する一般的な質問があります。問題があり、アルゴリズムを書きたい場合、問題にどのようにアプローチしますか、貪欲なアルゴリズムまたは動的プログラミングを使用するアルゴリズムをどのように決定しますか? 前もって感謝します

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

algorithm - 欲張りアルゴリズムに関する1つのトップコーダーエントリを理解できません

私は実際に欲張りアルゴリズムを練習していますが、トップコーダーに問題があります。

問題はロバストなコンピュータシステムに関するものです。http://www.topcoder.com/stat? c = problem_statement&pm = 2235&rd = 5070

MFCとは何かわかりません。(最大障害数)?

誰かが簡単な例でMFCの説明に光を当てることができれば、それは助けになるでしょう!

ありがとう..

アカウントをお持ちでなく、リンクをたどることができない場合の質問は次のとおりです。

堅牢なコンピュータシステムでは、最も重要な要素の1つは冷却です。適切な冷却がないと、プロセッサは400℃を超える温度まで加熱される可能性があります。システムの信頼性は、システムプロセッサを危険にさらすことなく故障する可能性のあるファンの数を判断することで測定できます。各ファンには、システムを冷却するために必要な容量を示す値を割り当てることができます。また、システムを適切に冷却するためにファン容量の合計を超える必要がある最小冷却容量を定義できます。障害セットは、システムの冷却に必要のないファンのセットとして定義されています。つまり、障害セット内のファンが破損した場合でも、残りのファンによってシステムを適切に冷却できます。障害セットの数は、セット内のファンの数です。

信頼性を測定するために、最大障害セット(MFS)と最大障害カウント(MFC)の2つの値を定義します。MFSは、可能な限り最大数のファンの障害セットです。ファンのセットには、複数のMFSがある場合があります(以下を参照)。障害セットは、より高いカウントの障害セットがない場合にのみMFSです。MFCは最大値であり、カウント<=MFCのすべてのファンセットが障害セットになります。つまり、サイズがMFC以下のファンのセットは故障する可能性があり、システムは残りのファンによって適切に冷却されます。

容量1、2、3、および冷却要件が2のファンセットについて考えてみます。2つのカウントを持つ2つのMFSが存在します。ファン1と3、またはファン1と2です。ただし、ファン2と3は障害セットではありません(ファン1はそれ自体でシステムを適切に冷却できませんでした)。したがって、MFCは1です。これは、1つのファンに障害が発生した場合でも、システムを冷却できるためです。

各ファンが提供する冷却の単位数を指定するint[]容量と、システムを冷却するために必要な冷却の最小単位を指定するintminCoolingが与えられます。メソッドはint[]を返す必要があります。ここで、最初の値は最大障害セット(MFS)のファンの数であり、2番目の値は最大障害カウント(MFC)である必要があります。

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

php - 「GreedyTokenParsing」とは何ですか?

PHPでの貪欲なトークン解析とは何ですか?私は次のようなPHPコーディングガイドを読んでいました...

「変数を解析する必要がない限り、常に一重引用符で囲まれた文字列を使用します。変数を解析する必要がある場合は、中かっこを使用して貪欲なトークンの解析を防ぎます。文字列に一重引用符が含まれている場合は、二重引用符で囲まれた文字列を使用することもできます。エスケープ文字を使用します。」

これは、ハッキングを排除するために、変数の周りに中括弧を使用しているのですか?(例:{$ var})SQLインジェクションやXSS(Cross Site Scriptiong)など、ハッカーが使用できるある種の攻撃を解析する貪欲なトークンです。