再帰は、概念またはプロセスの定義が、それ自体のより単純なバージョンまたは以前のバージョンに依存する場合に発生します。[1]再帰は、言語学から論理学に至るまで、さまざまな分野で使用されています。再帰の最も一般的な用途は、定義される関数がその定義内に適用されます。これは明らかに無限の数のインスタンス(関数値)を定義しますが、無限ループや参照の無限チェーンが発生しないような方法で行われることがよくあります。
再帰を示すプロセスは再帰的です。
正式な定義

数学とコンピュータ サイエンスでは、オブジェクトまたはメソッドのクラスは、次の 2 つのプロパティによって定義できる場合に再帰的な動作を示します。
- 単純なベースケース(またはケース)—答えを生成するために再帰を使用しない終了シナリオ
- 再帰ステップ—連続するすべてのケースを基本ケースに減らす一連のルール。
たとえば、次のものは、ある人の祖先の再帰的な定義です。ある人の祖先は、次のいずれかです。
- 親(基本ケース)、または
- 親の先祖(再帰的ステップ)。
フィボナッチ数列は再帰のもう一つの典型的な例です。
- 基本ケース1としてFib(0) = 0 、
- Fib(1) = 1 が基本ケース 2 の場合、
- すべての整数 n > 1に対して、Fib( n ) = Fib( n −1) + Fib( n −2)です。
多くの数学の公理は再帰的な規則に基づいています。たとえば、ペアノ公理による自然数の正式な定義は、「ゼロは自然数であり、各自然数には後続の自然数が存在する」と説明できます。[2]この基本ケースと再帰的な規則により、すべての自然数の集合を生成できます。
再帰的に定義されたその他の数学オブジェクトには、階乗、関数(例:再帰関係)、集合(例:カントールの三元集合)、フラクタルなどがあります。
再帰には、より冗談めいた定義がいろいろあります。再帰的なユーモアを参照してください。
非公式の定義

再帰とは、手順のステップの 1 つに手順自体の呼び出しが含まれる場合に、手順が実行するプロセスです。再帰を実行する手順は「再帰的」であると言われます。[3]
再帰を理解するには、手順と手順の実行の違いを認識する必要があります。手順は一連のルールに基づく一連のステップですが、手順の実行には実際にルールに従ってステップを実行することが含まれます。
再帰は、あるプロシージャの仕様内で他のプロシージャの実行を参照することと関連していますが、同じではありません。
手順がこのように定義されると、すぐに無限ループが発生する可能性があります。再帰は、手順が完了できるように特定のケースで問題のステップがスキップされる場合にのみ、定義で適切に使用できます。
再帰的な手順は、たとえ適切に定義されているとしても、新しい手順と、部分的に実行された古い手順の呼び出しを区別する必要があるため、人間にとって実行するのは簡単ではありません。これには、手順のさまざまな同時インスタンスがどの程度進んでいるかについての管理が必要です。このため、日常的な状況で再帰的な定義が行われることはほとんどありません。
言語において
言語学者ノーム・チョムスキーは、他の多くの人々とともに、言語における文法的な文の数に上限がないこと、そして文法的な文の長さに上限がないこと(文を発声するのに利用できる時間などの実際的な制約以外)は、自然言語における再帰の結果として説明できると主張している。[4] [5]
これは、文などの統語的カテゴリの再帰的定義の観点から理解できます。文は、動詞の後に別の文が続く構造を持つことができます。たとえば、ドロシーは魔女は危険だと思っている、この場合、魔女は危険だという文は、より大きな文の中に現れます。したがって、文は、名詞句、動詞、およびオプションで別の文を含む構造を持つものとして、再帰的に(非常に大まかに)定義できます。これは、実際には、再帰の数学的定義の特別なケースにすぎません。
これは、言語の創造性、つまり文法的な文の無限の数を理解する方法を提供します。なぜなら、文の長さは任意になり得るとすぐに予測できるからです。ドロシーは、トトがブリキの木こりが...と言ったのではないかと疑っていると思います。文以外にも再帰的に定義できる構造はたくさんあり、したがって文があるカテゴリのインスタンスを別のカテゴリに埋め込むことができる方法も数多くあります。[6]長年にわたり、言語全般がこの種の分析に適していることが証明されてきました。
再帰は人間の言語の本質的な性質であるという、一般的に受け入れられている考えは、ダニエル・エヴェレットがピーダハン語についての主張に基づいて異議を唱えた。アンドリュー・ネヴィンズ、デイヴィッド・ペセツキー、シレーヌ・ロドリゲスなど、これに反対する人は多い。[7]文学的自己言及は、いずれにしても数学的または論理的再帰とは性質が異なると主張できる。[8]
再帰は、統語論だけでなく、自然言語の意味論でも重要な役割を果たします。たとえば、単語and は、文の意味に適用して新しい文を作成できる関数として解釈できます。同様に、名詞句の意味、動詞句の意味などにも適用できます。また、自動詞、他動詞、二重他動詞にも適用できます。適切に柔軟で、通常、これらの異なるタイプの意味のいずれかを引数として取ることができるように定義される単一の表示を提供するために、これを文を組み合わせる単純なケースで定義し、次に単純なケースに基づいて他のケースを再帰的に定義することでこれを行うことができます。[9]
再帰的なユーモア
再帰は、コンピューターサイエンス、プログラミング、哲学、数学の教科書で、一般的には循環的な定義や自己参照を与えることによって、ユーモラスに使用されることがあります。この場合、想定される再帰ステップは基本ケースに近づかず、代わりに無限後退につながります。このような本の用語集に次のようなジョークのエントリが含まれていることは珍しくありません。
- 再帰については再帰を参照。[11]
Brian KernighanとDennis Ritchieの著書『プログラミング言語 C』 のいくつかの版の索引の 269 ページに、このジョークのバリエーションが見つかります。索引のエントリは、自分自身を再帰的に参照しています (「再帰 86、139、141、182、202、269」)。このジョークの初期のバージョンは、 Laurent Siklóssy の『Let's talk Lisp』 (Prentice Hall PTR より 1975 年 12 月 1 日に出版、著作権は 1976 年) とKernighan と Plauger の『Software Tools 』 (Addison-Wesley Professional より 1976 年 1 月 11 日に出版) にあります。このジョークはKernighan と Pike の『The UNIX Programming Environment』にも登場します。 『プログラミング言語 C』の初版には登場しませんでした。このジョークは関数型プログラミングの伝説の一部であり、前述の本の出版前から関数型プログラミング コミュニティで広まっていました。[12] [13]

もう一つのジョークは、「再帰を理解するには、再帰を理解しなければならない」というものです。[11]英語版の Google ウェブ検索エンジンでは、「再帰」を検索すると、サイトは「もしかして:再帰」と提案します。[14]別の形式は、アンドリュー・プロトキンによるものです。「再帰が何であるかをすでに知っている場合は、答えを覚えておいてください。そうでない場合は、ダグラス・ホフスタッターの近くに立っている人を見つけて、その人に再帰とは何かを尋ねてください。」
再帰的な頭字語も再帰的なユーモアの例です。たとえば、PHPは「PHP Hypertext Preprocessor」の略で、 WINE は「WINE Is Not an Emulator」の略で、GNU は「GNU's not Unix」の略で、SPARQL は「SPARQL Protocol and RDF Query Language」を表します。
数学では

再帰的に定義された集合
例: 自然数
再帰的に定義された集合の標準的な例は、自然数によって与えられます。
- 0は
- n がに含まれる場合、n + 1 は に含まれる。
- 自然数の集合は、前の 2 つの性質を満たす最小の集合です。
数学論理学において、ペアノの公理(ペアノの公理またはデデキント・ペアノの公理ともいう)は、19世紀にドイツの数学者リヒャルト・デデキントとイタリアの数学者ジュゼッペ・ペアノによって提唱された自然数の公理である。ペアノの公理は、再帰的後続関数と加算および乗算を再帰関数として参照して自然数を定義する。
例: 証明手順
もう 1 つの興味深い例は、次のように帰納的に (または再帰的に) 定義される 証明手順に基づいて定義される公理システム内のすべての「証明可能な」命題の集合です。
- 命題が公理である場合、それは証明可能な命題です。
- 命題が推論規則によって真に到達可能な命題から導き出される場合は、その命題は証明可能な命題です。
- 証明可能な命題の集合は、これらの条件を満たす命題の最小の集合です。
有限分割規則
有限分割規則は、フラクタルのような画像を作成するために使用できる幾何学的な再帰形式です。分割規則は、有限個のラベルが付けられたポリゴンのコレクションから開始され、各ポリゴンは、元のポリゴンのラベルのみに依存する方法で、ラベルの付いたより小さなポリゴンに分割されます。このプロセスは反復できます。カントール集合を作成するための標準的な「中間 3 分の 1」手法は、重心分割と同様に、分割規則です。
関数再帰
関数は、それ自身について再帰的に定義されることがあります。よく知られている例としては、フィボナッチ数列があります: F ( n ) = F ( n − 1) + F ( n − 2)。このような定義が有用であるためには、再帰的に定義されない値に還元可能でなければなりません。この場合、F (0) = 0 およびF (1) = 1 です。
再帰的定義を伴う証明
前のセクションのように、再帰的に定義された集合または関数に事例による証明の標準的な手法を適用すると、構造的帰納法が得られます。これは、数理論理学とコンピューター サイエンスで証明を導くために広く使用されている数学的帰納法の強力な一般化です。
再帰最適化
動的計画法は、複数期間または複数ステップの最適化問題を再帰形式で表現する最適化アプローチです。動的計画法の主要な結果はベルマン方程式であり、これは最適化問題の以前の時点 (または以前のステップ) の値を、後の時点 (または後のステップ) の値で表したものです。
再帰定理
集合論において、これは再帰的に定義された関数が存在することを保証する定理である。集合X 、 Xの元a、関数f : X → Xが与えられたとき、定理は、 (0を含む自然数の集合を表す) 唯一の関数が存在し、
任意の自然数nに対して。
デデキントは、集合論的関数の再帰による一意定義の問題を初めて提起し、1888年のエッセイ「何があったのか、そして何があったのか?」 [15]で議論の概要を示した。
ユニーク性の証明
次のような2 つの関数とを取ります。
ここで、aはXの要素です。
すべての自然数 nに対してF ( n )= G ( n )であることが数学的帰納法によって証明できる。
- 基本ケース: F (0) = a = G (0)なので、 n = 0の場合に等式が成立します。
- 帰納的ステップ:ある に対してF ( k ) = G ( k )と仮定します。すると、F ( k + 1) = f ( F ( k )) = f ( G ( k )) = G ( k + 1) となります。
- したがって、F ( k ) = G ( k )はF ( k + 1) = G ( k + 1)を意味します。
帰納法により、すべての場合においてF ( n )= G ( n )となる。
コンピュータサイエンス
問題を単純化するための一般的な方法は、問題を同じタイプのサブ問題に分割することです。コンピュータ プログラミング手法として、これは分割統治法と呼ばれ、多くの重要なアルゴリズムの設計の鍵となります。分割統治法は、問題解決に対するトップダウン アプローチとして機能し、より小さなインスタンスを解決して問題を解決します。反対のアプローチは動的プログラミングです。このアプローチはボトムアップ アプローチとして機能し、必要なサイズに達するまで、より大規模なインスタンスを解決して問題を解決します。
再帰の典型的な例は、次のPythonコード で示される階乗関数の定義です。
def factorial ( n ):
n > 0の場合 : n * factorial ( n - 1 )を返す、そうでない場合: 1を返す
この関数は、入力の小さいバージョンに対して自分自身を再帰的に呼び出し、階乗の数学的定義と同様に、
基本ケースに達するまで(n - 1)再帰呼び出しの結果を で乗算します。n
コンピュータ プログラミングにおける再帰は、関数がそれ自身のより単純で、多くの場合より小さなバージョンで定義される場合に例証されます。問題の解決法は、問題のより単純なバージョンから得られた解決法を組み合わせることによって考案されます。再帰の応用例の 1 つは、プログラミング言語のパーサーです。再帰の大きな利点は、有限のコンピュータ プログラムによって、可能性のある文、デザイン、またはその他のデータの無限のセットを定義、解析、または生成できることです。
再帰関係は、 1 つ以上のシーケンスを再帰的に定義する方程式です。特定の種類の再帰関係を「解く」と、非再帰的な定義 (たとえば、閉じた形式の式) が得られます。
アルゴリズムで再帰を使用すると、利点と欠点の両方があります。主な利点は通常、命令が単純になることです。主な欠点は、再帰アルゴリズムのメモリ使用量が急速に増加する可能性があるため、大規模なインスタンスでは実用的でなくなることです。
生物学では
植物や動物には、1つの大きな部分が2つ以上の類似した小さな部分に枝分かれする分岐構造など、再帰的なプロセスによって作られたように見える形状が時々見られます。一例として、ロマネスコブロッコリーが挙げられます。[16]
社会科学では
著者らは、再帰性 の概念を用いて、特に社会科学者が、自分たちが常に一部となっている世界についての知識を生み出す際に自分たちが置かれている状況を前面に押し出している。[17] [18]オードリー・アレハンドロによれば、「社会科学者としての私たちの状況の再帰性は、私たちが(言説は分析を行う媒体であるため)主体であると同時に、私たちが生み出す学術的言説の客体でもある(私たちは分析する世界に属する社会的エージェントであるため)という事実を扱っている。」[19]この根拠から、彼女は再帰性において、反省的な努力の行使を必要とする解放的知識の生産における根本的な課題を特定している。
私たちは、挑戦しようとしている社会政治的秩序によって生み出された言説や性向に社会化されており、したがって、私たちはその社会政治的秩序を無意識に再生産しながら、それとは逆のことをしようとしている可能性がある。学者としての私たちの状況の再帰性、より正確には、世界についての知識を生み出すために使用する性向ツール自体がこの世界によって生み出されているという事実は、実際に再帰性を実行することの決定的な必要性を実証するとともに、そうすることの主な課題を提示している。
— オードリー アレハンドロ、アレハンドロ (2021)
ビジネスでは
再帰は、経営科学では、大規模な企業体における抽象化のレベルを反復するプロセスを指すこともあります。 [20]一般的な例としては、ライン管理職から中間管理職 を経て上級管理職に至る管理階層の再帰的な性質が挙げられます。また、企業統治における資本構成というより大きな問題も含んでいます。[21]
芸術では


マトリョーシカ人形は再帰的概念の物理的な芸術的例である。[22]
再帰は、1320年に制作されたジョットの『ステファネスキ三連祭壇画』以来、絵画に使用されている。中央のパネルには、ステファネスキ枢機卿がひざまずいて三連祭壇画自体を捧げ物として掲げている姿が描かれている。[23] [24]この手法は、ミゼ・アン・アビム技法の一例であるドロステ効果としてより一般的に知られている。
MCエッシャーの版画ギャラリー(1956年)は、歪んだ都市を描いた版画であり、その中には絵画を再帰的に含むギャラリーがあり、それが無限に繰り返される。[25]
文化の中で
映画「インセプション」では、名詞に接尾辞-ceptionをつけて、何かの再帰を冗談めかして示す口語表現が使われた。 [26]
参照
- 共帰 – コンピュータサイエンスにおけるアルゴリズムの種類
- 値過程再帰 – 再帰によって数論的関数を定義する手法
- デジタル無限 – 理論言語学の用語
- 夢の中の夢(詩) – エドガー・アラン・ポーの詩
- ドロステ効果 – 再帰的な視覚効果
- 偽覚醒 – 眠りから目覚めるという鮮明で説得力のある夢
- 不動点コンビネータ – Y f = f (Y f) となる高階関数 Y
- 解析関数の無限合成 – 無限反復関数合成に関する数学理論
- 無限ループ – プログラミング用語
- 無限後退 – 哲学的問題
- 無限主義 – 知識は無限の理由の連鎖によって正当化される可能性があるという哲学的見解
- 無限大ミラー – 平行または角度のあるミラーで、無限に遠ざかるように見える小さな反射を作成します。
- 反復関数 – 数学関数を繰り返し適用した結果
- 数学的帰納法 – 数学的証明の形式
- ミゼ・アン・アビム – イメージのコピーをイメージの中に配置したり、ストーリーの中にストーリーを配置する技法
- 再入可能(サブルーチン) – コンピュータプログラミングの概念
- 自己言及 – 自分自身に言及する文、アイデア、または式
- シュピーゲル イム シュピーゲル – アルヴォ ペルトによる 1978 年の音楽作品
- 奇妙なループ – 階層システム内の複数のレベルを通過する循環構造
- 末尾再帰 – プロシージャの最終アクションとして実行されるサブルーチン呼び出し
- タッパーの自己参照式 - グラフ化したときに視覚的に表現される式
- 亀はずっと下へ – 無限後退の声明
参考文献
- ^ Causey, Robert L. (2006). Logic, sets, and recursion (第 2 版). Sudbury, Mass.: Jones and Bartlett Publishers. ISBN 0-7637-3784-4. OCLC 62093042.
- ^ 「ペアノの公理 | 数学」ブリタニカ百科事典。 2019年10月24日閲覧。
- ^ 「RECURSIVEの定義」www.merriam-webster.com . 2019年10月24日閲覧。
- ^ ピンカー、スティーブン(1994)。『言語本能』ウィリアム・モロー。
- ^ピンカー 、スティーブン、ジャケンドフ、レイ( 2005)。「言語能力:何がそんなに特別なのか?」認知。95 ( 2): 201–236。CiteSeerX 10.1.1.116.7784。doi : 10.1016 / j.cognition.2004.08.004。PMID 15694646。S2CID 1599505 。
- ^ Nordquist, Richard. 「英語文法における再帰とは何か?」ThoughtCo . 2019年10月24日閲覧。
- ^ Nevins, Andrew; Pesetsky, David; Rodrigues, Cilene (2009). 「証拠と議論:Everett (2009) への返答」(PDF)。言語。85 ( 3):671–681。doi :10.1353/lan.0.0140。S2CID 16915455。 2012年1月6日時点の オリジナル(PDF)からアーカイブ。
- ^ ドラッカー、トーマス(2008年1月4日)。数理論理学の歴史の展望。シュプリンガー・サイエンス&ビジネス・メディア。p. 110。ISBN 978-0-8176-4768-1。
- ^ Barbara Partee と Mats Rooth。1983 年。Rainer Bäuerle 他著『言語の意味、使用、解釈』。Paul Portner と Barbara Partee 編著『形式意味論: 必須の読み物』に再録。Blackwell。
- ^ Nederhof, Mark-Jan; Satta, Giorgio (2002)、「非再帰的文脈自由文法の解析」、第 40 回計算言語学協会年次会議 (ACL '02) の議事録、ペンシルベニア州ストウズバーグ、米国: 計算言語学協会、pp. 112–119、doi : 10.3115/1073083.1073104。
- ^ ab ハンター、デイビッド (2011)。離散数学の基礎。ジョーンズとバートレット。p. 494。ISBN 9781449604424。
- ^ Shaffer, Eric. 「CS 173:離散構造」(PDF)。イリノイ大学アーバナ・シャンペーン校。 2023年7月7日閲覧。
- ^ 「C言語によるコンピュータサイエンスとプログラミング入門、セッション8:2008年9月25日」(PDF)。コロンビア大学。 2023年7月7日閲覧。
- ^ 「再帰 - Google 検索」www.google.com . 2019年10月24日閲覧。
- ^ A. Kanamori、「In Praise of Replacement」、pp.50--52。Bulletin of Symbolic Logic、vol. 18、no. 1 (2012)。2023年8月21日にアクセス。
- ^ 「本日の写真:フラクタルカリフラワー」。2012年12月28日。 2020年4月19日閲覧。
- ^ ブルデュー、ピエール (1992)。 「ダブルバインドとコンバージョン」。人類人類学を再帰的に注ぎます。パリ:ル・スイユ。
- ^ ギデンズ、アンソニー(1987)。社会理論と現代社会学。ポリティプレス。
- ^ Alejandro, Audrey (2021). 「再帰的談話分析:再帰性の実践のための方法論」.ヨーロッパ国際関係ジャーナル. 27 (1): 171. doi : 10.1177/1354066120969789 . ISSN 1354-0661. S2CID 229461433.
- ^ 「カナダの中小企業と銀行のインターフェース:再帰モデル」。SAGEジャーナル。
- ^ ビア、スタッフォード(1972年)。ブレイン・オブ・ザ・ファーム。ISBN 978-0471948391。
- ^ Tang, Daisy. 「再帰」 。2015年9 月 24 日閲覧。
再帰のその他の例: ロシアのマトリョーシカ人形。各人形は無垢材で作られているか、中が空洞で中に別のマトリョーシカ人形が入っています。
- ^ 「ジョット・ディ・ボンドーネと助手たち:ステファネスキ三連祭壇画」バチカン。 2015年9月16日閲覧。
- ^ スヴォジル、カール(2018)。物理的(A)因果関係:決定論、ランダム性、および原因のないイベント。シュプリンガー。p.12。ISBN 9783319708157。
- ^ Cooper, Jonathan (2007年9月5日). 「芸術と数学」 . 2020年7月5日閲覧。
- ^ 「-ception – ライス大学新語データベース」ライス大学。2017年7月5日時点のオリジナルよりアーカイブ。2016年12月23日閲覧。
文献
- ダイクストラ、エドガー W. (1960)。 「再帰的プログラミング」。数学数学。2 (1): 312–318。土井:10.1007/BF01386232。S2CID 127891023。
- ジョンソンバウ、リチャード(2004)。離散数学。プレンティス ホール。ISBN 978-0-13-117686-7。
- ホフスタッター、ダグラス(1999)。ゲーデル、エッシャー、バッハ: 永遠の黄金の編み紐。ベーシックブックス。ISBN 978-0-465-02656-2。
- ショーンフィールド、ジョセフ R. (2000)。再帰理論。AK ピーターズ社。ISBN 978-1-56881-149-9。
- Causey, Robert L. (2001)。論理、集合、再帰。Jones & Bartlett。ISBN 978-0-7637-1695-0。
- コリ、ルネ、ラスカー、ダニエル、ペルティエ、ドナルド H. (2001)。再帰理論、ゲーデルの定理、集合論、モデル理論。オックスフォード大学出版局。ISBN 978-0-19-850050-6。
- バーワイズ、ジョン、モス、ローレンス S. (1996)。悪循環。スタンフォード大学言語情報研究センター。ISBN 978-0-19-850050-6。-共起 の処理を提供します。
- ローゼン、ケネス H. (2002)。離散数学とその応用。マグロウヒル カレッジ。ISBN 978-0-07-293033-7。
- コーメン、トーマス H.チャールズ・E・ライザーソン;ロナルド・L・リベスト、スタイン、クリフォード (2001)。アルゴリズムの概要。ミット広報ISBN 978-0-262-03293-3。
- カーニハン、B.; リッチー、D. (1988)。プログラミング言語 C。プレンティス ホール。ISBN 978-0-13-110362-7。
- ストーキー、ナンシー、ロバート・ルーカス、エドワード・プレスコット(1989年)。経済ダイナミクスにおける再帰的手法。ハーバード大学出版局。ISBN 978-0-674-75096-8。
- ハンガーフォード (1980)。代数。スプリンガー。ISBN 978-0-387-90518-1。集合論の最初の章。
外部リンク
- 再帰 - Alan Gauld によるチュートリアル
- ZIPファイルを最後まで圧縮
- アンドリュー・ネヴィンズ、デイビッド・ペセツキー、シリーン・ロドリゲス。証拠と議論:エヴェレットへの返答(2009年)。言語85.3:671--681(2009年)
