質問

実世界 問題が再帰的アプローチでの自然解も深さ優先探索(DFS)?

(だと考えたこと タワーハノイ, 色数, 又は要因実世界の課題です。スタジアしたり、逆に興味を持っていました。)

役に立ちましたか?

解決

多くのmathy例ここでもまた、 実世界 どのエリアを表示一部のエリアを考え、ここでのご用意できます:

見る者を契約されcontageous感染症で死亡し、修正も速(タイプA)を除き、5人までの呼びこれらのタイプB)の方となる恒久的に感染したので、無症状な行為は、パターン.

この非常に面倒波の爆発時刻タイプB染する多数のタイプA

あなたの仕事は、すべてのタイプBs-immuniseットワークの基幹病の病態残念ながら、カ?管理の全国的な治療すべての人typeAsも大アレルギーを治療することができますタイプB

のようなことは、社会の発見、感染した人間(タイプA)を選択し、すべての連絡先を最終週に、それぞれの接触は、ヒープ.テストするときには人が感染追加し上げます。の場合はB型として追加しようとすると、"フォローアップ"のヘッドを用いてこれこそがいます)を活用したいと思います

加工後の定人を選択し、名前からキューに応用予防接種が必要です。取得すべての連絡先未訪問し、その後試験への参照だけでなく、感染した。

まで繰り返しのキューに感染した人が0のとき、待ちのために別の発生..

(Ok、ビット反復がにどの程度の解を再帰的な問題は、この場合、広が初のフォーカストラバーサルの人口の拠点を見出そうとしているパスの問題、また、繰り返し解くより速く、より効果的な、無我夢中削除再帰ろう、となる本能的な.....dammit!)

他のヒント

現実の世界に例の再帰

A sunflower

どのように、なんでも伴うディレクトリ構造のファイルシステム。再帰的に探ファイルを削除するファイル、ディレクトリ作成等

ここでは、Javaの実装を再帰的にプリントアウトしたりすることは、コンテンツのディレクトリとそのサブディレクトリが入っています。

import java.io.File;

public class DirectoryContentAnalyserOne implements DirectoryContentAnalyser {

    private static StringBuilder indentation = new StringBuilder();

    public static void main (String args [] ){
        // Here you pass the path to the directory to be scanned
        getDirectoryContent("C:\\DirOne\\DirTwo\\AndSoOn");
    }

    private static void getDirectoryContent(String filePath) {

        File currentDirOrFile = new File(filePath);

        if ( !currentDirOrFile.exists() ){
            return;
        }
        else if ( currentDirOrFile.isFile() ){
            System.out.println(indentation + currentDirOrFile.getName());
            return;
        }
        else{
            System.out.println("\n" + indentation + "|_" +currentDirOrFile.getName());
            indentation.append("   ");

            for ( String currentFileOrDirName : currentDirOrFile.list()){
                getPrivateDirectoryContent(currentDirOrFile + "\\" + currentFileOrDirName);
            }

            if (indentation.length() - 3 > 3 ){
                indentation.delete(indentation.length() - 3, indentation.length());
            }
        }       
    }

}

Quicksort, マージソ, など、N log N.d.を取得しています。

マットDillardの例である。より一般的には、歩行のツリーでは取り扱いによる再帰非常に容易です。のためのインスタンスをコンパイルを解析し、樹木の道のりを歩XMLやHTMLなど。

再帰が実装の 消アルゴリズム.のための"実世界の"アプリのこれいかがですか ソルバーのパズル?

再帰が適切な場合に問題を解決することができ分けてサブ課題使用できるように、同じアルゴリズム用して、解決策を考えていきます。アルゴリズムの樹木やソートリストは自然です。多くの問題を計算幾何学(および3Dゲーム解決することができ再帰的に使用 バイナリの空間分割 (BSP)木 脂肪内訳区分, その他の方法で分割のサブパーツ。

再帰にも適合しようとしているがその正確性のアルゴリズムです。与えられ機能する不変の入力を返します結果を組み合わせた再帰非再帰呼び出しは入力で簡単に証明の機能が正しい(しない)を使用数学的誘導します。それは多くの場合難しいことの反復機能や入力する変異.この処理時に役立つ金融計算および他のアプリが正確では非常に重要です。

のように多くのコンパイラが使用再帰ます。コンピュータの言語は、本質的に再帰的にしたもの(すなわちに組み込むことができます'if'諸表の内その他"の場合営課題として取り組んでいます。).

した効果の設定読み取り専用のためのすべての制御コンテナます。私は必要ないこともあるので、子どものを制御した容器です。

public static void SetReadOnly(Control ctrl, bool readOnly)
{
    //set the control read only
    SetControlReadOnly(ctrl, readOnly);

    if (ctrl.Controls != null && ctrl.Controls.Count > 0)
    {
        //recursively loop through all child controls
        foreach (Control c in ctrl.Controls)
            SetReadOnly(c, readOnly);
    }
}

有名なエバール/申し込みサイクルから SICP

alt text
(出典: mit.edu)

この定義のエバール:

(define (eval exp env)
  (cond ((self-evaluating? exp) exp)
        ((variable? exp) (lookup-variable-value exp env))
        ((quoted? exp) (text-of-quotation exp))
        ((assignment? exp) (eval-assignment exp env))
        ((definition? exp) (eval-definition exp env))
        ((if? exp) (eval-if exp env))
        ((lambda? exp)
         (make-procedure (lambda-parameters exp)
                         (lambda-body exp)
                         env))
        ((begin? exp) 
         (eval-sequence (begin-actions exp) env))
        ((cond? exp) (eval (cond->if exp) env))
        ((application? exp)
         (apply (eval (operator exp) env)
                (list-of-values (operands exp) env)))
        (else
         (error "Unknown expression type - EVAL" exp))))

この定義を適用する

(define (apply procedure arguments)
  (cond ((primitive-procedure? procedure)
         (apply-primitive-procedure procedure arguments))
        ((compound-procedure? procedure)
         (eval-sequence
           (procedure-body procedure)
           (extend-environment
             (procedure-parameters procedure)
             arguments
             (procedure-environment procedure))))
        (else
         (error
          "Unknown procedure type - APPLY" procedure))))

この定義のエバール-シーケンス

(define (eval-sequence exps env)
  (cond ((last-exp? exps) (eval (first-exp exps) env))
        (else (eval (first-exp exps) env)
              (eval-sequence (rest-exps exps) env))))

eval -> apply -> eval-sequence -> eval

再帰を使うBSP木衝突検出ゲーム開発(およびその他類似する領域)です。

人々がソート煙突の文書を再帰的方法です。例えば、想像すソート100書名ます。最初の書類は杭の頭文字で、そのうぞ.

見出し語を辞書で引くというのがあるバイナリ検索のような技術列に変換します。

団体で、上司と正常コマンド部門長たいコマンドを管理者です。

パーサおよびコンパイラでコンパイルされ、再帰的-降下法です。なので、リーディングプロジェクトlex/yaccを迅速化-効率化が図られるパーサが、概念的簡単に実装では一般的です。

現実世界の要求って

要件:実はこの特徴を十分に理解を求A.

再帰を適用問題状況が休憩でき(動きをタイムリーかつ詳細)より小さい部品、各部(s)により、元の問題です。

良い例がものを含む小さなパーツと同様そのものは:

  • ツリー構造(a支店のようにツリー)
  • リスト(一部のリストはリスト)
  • 器総合機構のホームページに掲載のロシア人形)
  • シーケンスの一部としなければならない場合も、次)
  • 群オブジェクトエージェントのa部分群がまだオブジェクトのグループ)

再帰する技術を保つの問題に小さくな作品まで一個の小さくなっているもの作りのケーキになります。もちろん、後のご休憩、それを"ステッチ"の結果を立て直すことができませんの形成のためにソリューションのオリジナルの問題です。

一部再帰的に選別アルゴリズム、ツリー-歩行アルゴリズム、マップの削減アルゴリズム、世界からはみ出ているすべての例です。

コンピュータプログラミングもスタックベーコ戻り値の型言語での能力構築のための再帰:すなわち

  • 休みの問題は、より細かな点==>通話にも、小さいサブセットの元のデータ
  • 追跡にどのようにされて==>呼び出しスタック,
  • ステッチの結果を返==>スタックに基づく返還

していることを目標にして純 尾再帰 少数の場所をシミュレーション状態です。

一例の再帰っ プログラミング 言語.機能プログラミング言語(Gimp用ドキュメ, , ML//F#, 等)、 で非常に共通しており、当リスト処理の使用再帰.

扱う場合はリストの典型的なOOP-スタイルの言語でも共通の参照リストとして実施されリンクリスト([item1->項目※2->item3->item4]).しかし、一部のプログラミング言語で表するとともに、リスト自身が実施して再帰的には、"頭"のリスト内の最初の項目はリストの"末尾"のポイントを含むリストの項目[item1->[項目※2->[item3->[item4-> []]]]]).最後にこれからの創造的思います。

この取扱いのリストと組み合わせパターンマッチングでも効果を発揮します。ということかしたい和のリスト番号:

let rec Sum numbers =
    match numbers with
    | [] -> 0
    | head::tail -> head + Sum tail

これによって、基本的には"した場合で呼び出され、空のリストの0を返します"(きの休憩を繰り返),elseの値を返すヘッド+の価値の和というと、残りの項目(このため、当社の再帰).

例えば、リストの Url, いかにすべてのUrlの各URLへのリンク、その点数の削減へのリンクからすべてのUrlを"価値"のページのアプローチとGoogleかと PageRank とがきっと見つかるはずで定義された独自の MapReduce することができます。これまでに生成単語の文書もございます多くの、多くの、多くの他のものとします。

ウンターまでお問合わせくださいこの機能のパターンの MapReduce コードできるかの一覧もの、ユニットを変形させて、帰国したかを判別リスト、またはzipコマンドのリストに

XML、又は横断したものである。が、正直、かなりおなかが再帰私の仕事です。

フィードバックループに階層的に組織です。

トップbossう経営トップフィードバックを収集から皆さんの会社です。

各業務執行に集人に直接報告書と言うの収集から直接ます。

とにする。

ない人に対して直接報告の葉ノードのツリー--います。

の移動のバックアップツリーの各管を加え自分でいます。

最終的にすべてのこをトップボスがあります。

この自然解の再帰的方法では、フィルタリングの各レベルの照合の重複を除去に攻撃する。トップボス 送信グローバルメールとして各従業員の報告は直接フィードバックに戻って、あの"だけでは対応できな真実"や"い焚き"の問題で再帰のがベストです。

うまでCMSのためのウェブサイト、おのページをツリー構造のルートのホーム-ページです。

仮にもご{ユーザー|クライアント|お客様|ボ}要求する場breadcrumbトレイルでは、各ページに表示できる。

任意のページをn、いまで徒歩の親n,ならびにその親会で再帰的に構築のリストノードをルートのページです。

もちろん、んを打つのdbを複数回のページにその例をいただいた方がよいと思いますがご利用のSQLエイリアシングまでを眺ページ-テーブルとして、ページ-テーブルとして再b、a.idとb.親会社でのデータベースの再帰が仲間入り。微力ですが、応援させていただき、文法がなくなるだろう。

しかし、だいたいのみこの計算を一度にダウンロードしましょうと、ページの記録、更新することができま移動します。と思うがより効率的です。

とにかく、これはまさに私にぴったりの$.02

また組織ツリーのNレベルの深い。複数のノードをチェックしたいと考えていましたの拡大にのみノードのみチェックがされています。

この事実は、私は実際に符号化される。そのノスタルジックな景観は、と再帰.

私の仕事をしてシステムの汎用データ構造できるとして表示することができます。ということで再帰非常に有効な手法のデータです。

解決しないで繰り返える必要がある多くの不要なコードです。の問題を再帰ることは容易ではないたします。だって集中でき下記の流れを実行します。この場合、開示する作品のコードがあります。

計算のための金融-物理学などの化合物の平均。

  • 構文解析 XML ファイルです。
  • 効率的な検索に多次元空間です。E.g.quad-樹木の2次元oct-木3D kd-樹木など。
  • 階層的クラスタリング.
  • そういえば走行し任意の階層構造を自然にミックを再帰.
  • テンプレートmetaprogramming C++なループ再帰のみです。

構文解析木の管理 Windows Forms またはケ(.NET Windowsフォーム/ ASP.NET).

最ばんは quicksort, っ簡素化と再帰.か

shop.oreilly.com/product/9780596510046.do

www.amazon.com/Beautiful-Code-Leading-Programmers-Practice/dp/0596510047

(クリックの最初の副題の下での第3章:"最も美しいコードって書いた").

電話ケーブルを保持している企業モデルの配線トポロジー、効果は大田区のモノづくりネットワークやグラフで表示します。再帰片道を渡り、このモデルにしたいときにすべての親会社またはすべての子です。

以降、再帰あらかの処理や記憶の観点から、ステップは一般的にみを行った際のトポロジーを変更し、結果が格納され、変更前の順序付けられたリスト形式です。

帰納的推論過程をコンセプトの形成には再帰的です。脳までおこなっている時刻ます。

数理計算上の差異の処理についてのコメントコンパイラでコンパイル.抽象構文ツリーノードは自然が再帰.すべての再帰的データ構造(リンクリストフなど) もより簡単に取り扱い再帰.いとは思いものづくり学校の使用再帰くまの学校のための実世界の問題でもそれぞれに対してオプションになります。

増殖の自然数は実世界に例の再帰:

To multiply x by y
  if x is 0
    the answer is 0
  if x is 1
    the answer is y
  otherwise
    multiply x - 1 by y, and add x
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top