[解決済み] 再帰性の実例【非公開
質問
とは 現実世界 の問題で、深さ優先探索(DFS)以外に再帰的なアプローチが自然な解決策となるものは何でしょうか?
(私は ハノイの塔 , フィボナッチ数 とか、階乗の実戦問題とか。それらは私の中では少し作為的なものです)。
解き方は?
ここにはたくさんの数学的な例がありますが、あなたが欲しかったのは 実世界 ということで、少し考えて、これが私が提供できる最高の例です。
ある伝染病菌に感染した人がいます。これは致命的ではなく、すぐに治ります(A型)。
このため、B型がA型に感染すると、非常に迷惑な大混乱を引き起こす。
あなたの仕事は、すべてのB型を追跡し、病気のバックボーンを停止するためにそれらを免疫することです。 残念ながら、A型の人々はB型に効く治療薬に致命的なアレルギーを持っているので、あなたはすべての人に全国的な治療法を管理することはできません。
この方法は、社会的な発見であり、感染者(A型)がいる場合、過去1週間の接触者をすべて選び、それぞれの接触者に印を付けていきます。その人が感染していることをテストしたら、その人をフォローアップのキューに追加します。人がタイプ B であるとき、彼らを先頭に "フォローアップ" に追加します (これを速く止めたいからです)。
与えられた人を処理した後、キューの先頭からその人を選択し、必要であれば免疫を適用します。以前に訪問していないすべてのコンタクトを取得し、彼らが感染しているかどうかをテストします。
感染者のキューが0になるまで繰り返し、次のアウトブレイクを待ちます。
( OK、これは少し反復的ですが、再帰的な問題を解決する反復的な方法です。この場合、問題への可能性の高い経路を発見しようとする人口基盤の幅の最初のトラバーサルです。さらに、反復的な解決はしばしばより速く、効果的です。......くそっ! )
関連
-
[解決済み】再帰使用時のOcamlエラーUnbound Value
-
[解決済み】MIPSアセンブリを使用した再帰的な関数
-
[解決済み] リストを反転させるにはどうしたらいいですか?
-
[解決済み] 再帰的な関数をフローチャートで表現するには?
-
[解決済み] Fatal error.の解決方法 PHPの「Fatal error: Maximum function nesting level of '100' reached, aborting!
-
[解決済み] Lispで再帰関数はどのように動作するのですか?
-
[解決済み] 末尾再帰とは何ですか?
-
[解決済み] Pythonの最大再帰深度とその増やし方とは?
-
[解決済み] フラットテーブルをツリーにパースする最も効率的/エレガントな方法は何ですか?
-
[解決済み] 再帰的関数の複雑さの決定(Big O記法)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】再帰使用時のOcamlエラーUnbound Value
-
[解決済み】MIPSアセンブリを使用した再帰的な関数
-
[解決済み] リストを反転させるにはどうしたらいいですか?
-
[解決済み] 再帰使用時のOcaml Error Unbound Value
-
[解決済み] 再帰的な関数をフローチャートで表現するには?
-
[解決済み] 最後の関数の再帰呼び出しで「scheme application not a procedure」と表示された
-
[解決済み] Lispで再帰関数はどのように動作するのですか?
-
[解決済み] 再帰とループの比較
-
[解決済み] 再帰から反復への道
-
[解決済み] 再帰性はそれ自体が特徴なのか?