ホームページ  >  記事  >  バックエンド開発  >  与えられた条件に従って非巡回グラフを形成する整数のすべての順列を計算します。

与えられた条件に従って非巡回グラフを形成する整数のすべての順列を計算します。

WBOY
WBOY転載
2023-09-07 11:37:02904ブラウズ

与えられた条件に従って非巡回グラフを形成する整数のすべての順列を計算します。

整数 N 内のステージを数えて非循環グラフを形成するには、考えられるすべての変化を調査し、与えられた条件に従って非循環グラフを形成しているかどうかを確認する必要があります。これらの状態は、変化によって形成される配位グラフの構造に関連している可能性があり、サイクルの欠如は非循環性を示します。この問題にはグラフ理論の概念が含まれており、深さ優先探索または動的計画法によって解決できます。深さ優先検索は各ステージを再帰的に調査することで機能し、動的プログラミングは中間結果を保存することでループを最適化します。最後にカウントされる有効段数は、整数N内で所定の条件を満たす非巡回グラフに編成できるウェイの数を示す。

使用説明書

  • 深さ優先検索 (DFS)

  • 動的プログラミング

深さ優先検索 (DFS)

指定された操作でグループを生成する DFS 方法では、指定された数値から開始して、値 1 に達するまで再計算します。次のように進めます: 数値が実際に 2 の場合は 2 で割り、奇数の場合は 3 を掛けて 1 を加えます。未使用の結果を反映するように数値を更新し、シリーズに追加します。このプロセスは、数値が 1 に達するまで続きます。結果として得られるシーケンスは、指定された開始番号に対する繰り返しの Collat​​z シーケンスを表します。このアプローチにより、繰り返し計算を通じて変化する数値の推移を追跡し、パターンを明らかにし、コラッツ数列の動作を検討することができます。これは、シーケンスを生成し、この数学的驚異の魅力的な特徴を分析するための、シンプルで再現可能な方法を提供します。

###アルゴリズム###

    トラバースを開始する開始ハブを選択してください
  • どのセンターが積極的に調査したかを監視するために、センターを訪問済みとしてマークします。
  • 進行中のセントラル ノードの未訪問の近隣ノード (存在する場合) を訪問します。進行中の中央ノードの隣接ノードを特定するには、実際にグラフの感染性の記述 (近接リストや近接フレームワークなど) を知る必要があります。
  • 未訪問の近傍があると仮定し、そのうちの 1 つを選択し、その近傍からステージ 2 から 4 を (再帰的に) 再ハッシュします。
  • 未訪問の隣人がいないと仮定して、過去のセンターに戻り、その時点から調査を続けます (可能であれば)。このステップは、グラフ内のすべての潜在的なパスを探索するために重要です。
  • グラフ内のすべての中心ノードにアクセスするまで、ステージ 2 ~ 5 のハッシュ化を繰り返します。グラフが接続されていない (複数の部分が含まれている) 場合は、未訪問の中央ノードから開始して深さ優先検索 (DFS) を実行する必要がある場合があります。
  • Example
の中国語訳は次のとおりです:

Example

リーリー ###出力### リーリー

動的プログラミング

このアプローチでは、動的計画法を利用して、N に到達する非循環ステージの数を効率的に計算できます。 DP テーブルを定義します。ここで、dp[i] は数値 I で終わる非循環遷移の数を表します。

###アルゴリズム###

問題を調査し、より小さなサブ問題に分割できるかどうかを判断します。同じ部分問題を複数回解くのが非効率な場合は、動的プログラミングで部分問題の解決策を記憶することで解決策を改善できます。

  • より大きな問題の配置をその下位問題の配置として表現します。この重複接続が、DP を使用して問題を解決する鍵となります。

  • 接続が重複している場合、サブ質問への回答を保存するための表または表示を作成します。こうすることで二重カウントを防ぐことができます。

  • 通常はボトムアップのアプローチで、またはメモ化を使用して再帰的なプロセスで解決策を保存および取得して、最小のサブ問題から始めてフォームに記入します。

  • すべての部分問題が解決されたら、最終的な配置を DP テーブルまたはメモ化された表示から分離します。
  • Example

    の中国語訳は次のとおりです:
  • Example リーリー ###出力### リーリー ###結論は### 非巡回グラフを形成できることを計算する段階には、整数のさまざまな配置を検討して、整数が所定の条件を確実に満たすことを確認することが含まれます。 DFS はステージを再帰的に探索しますが、DP はメモ化を通じてループを改善します。これら 2 つの方法は、この問題を解決する重要な方法を提供します。方法の選択は、制約と N のサイズによって異なります。これらの方法を通じて、法的段階の数を効率的に見つけることができ、数値が所定の条件に従って非巡回グラフを形成する仕組みを理解するのに役立ちます。

以上が与えられた条件に従って非巡回グラフを形成する整数のすべての順列を計算します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。