recursive
「recursive」の意味・「recursive」とは
「recursive」は英語の単語で、主にプログラミングの分野で使われる。この単語は、ある関数が自分自身を呼び出すことを指す。具体的には、ある関数が自分自身を再度呼び出すことで、問題を分割し、解決する手法を指す。このような再帰的な処理は、プログラムのコードを簡潔にし、理解しやすくする効果がある。「recursive」の発音・読み方
「recursive」の発音は、IPA表記では /rɪˈkɜːrsɪv/ となる。IPAのカタカナ読みでは「リ・カーシヴ」となり、日本人が発音するカタカナ英語では「リカーシブ」と読む。この単語は発音によって意味や品詞が変わる単語ではない。「recursive」の定義を英語で解説
「recursive」は、"relating to or involving a program or routine of which a part requires the application of the whole, so that its explicit interpretation requires in general many successive executions"と定義される。これは、あるプログラムやルーチンの一部が全体の適用を必要とし、その明示的な解釈は一般的に多くの連続した実行を必要とすることを関連付ける。「recursive」の類語
「recursive」の類語としては、「circular」や「indirect」がある。これらの単語も同様に、何かが自分自身に戻る、あるいは間接的に影響を与えるという意味合いを持つ。「recursive」に関連する用語・表現
「recursive」に関連する用語としては、「recursion」や「recursively」がある。「recursion」は再帰のことを指し、「recursively」は再帰的にという意味である。これらの単語もプログラミングの文脈でよく使われる。「recursive」の例文
以下に「recursive」を用いた例文を10個示す。 1. The function is recursive.(その関数は再帰的である)2. Recursive algorithms can simplify complex problems.(再帰的なアルゴリズムは複雑な問題を単純化することができる)
3. The recursive nature of the function makes it efficient.(関数の再帰的な性質がそれを効率的にする)
4. The recursive function calls itself until it reaches a base case.(再帰関数は基底ケースに達するまで自分自身を呼び出す)
5. Recursive programming is a powerful tool in computer science.(再帰的なプログラミングはコンピュータ科学における強力なツールである)
6. The recursive process continues until a certain condition is met.(再帰的なプロセスは特定の条件が満たされるまで続く)
7. The recursive structure of the data makes it easy to process.(データの再帰的な構造が処理を容易にする)
8. Recursive methods can be difficult to understand at first.(再帰的な方法は初めて理解するのが難しいことがある)
9. The recursive pattern can be seen in many natural phenomena.(再帰的なパターンは多くの自然現象で見ることができる)
10. Recursive functions are often used in mathematical computations.(再帰関数は数学的な計算でよく使われる)
再帰
(リカーシブ から転送)
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2026/01/01 16:20 UTC 版)
再帰(さいき、英: Recursion, Recursive)とは、ある物事について記述する際に、記述しているもの自体への参照が[注釈 1]、その記述中にあらわれることをいう。
再帰は言語学から論理学に至る様々な分野で使用されている。最も一般的な適用は数学と計算機科学で、定義されている関数がそれ自身の定義の中で参照利用されている場合を言う。
定義
平行な合わせ鏡の間に物体を置くと、その像が鏡の中に無限に映し出される。このように、あるものが部分的にそれ自身で構成されていたり、それ自身によって定義されている時に、それを「再帰的(Recursive)」だという[1][2]。論理的思考の重要な特質のひとつであり、数学では漸化式や数学的帰納法が再帰的構造を持っている[1]。計算機科学だと、オブジェクトやメソッドのクラスが、以下2つの項目で定義できる場合に再帰的構造だと言える。
- 単純な基底段階 (base case) - 答えを出すのに再帰を使わない、論理展開の終着点。基底は複数あっても構わない。
- 再帰段階 (recursive step) - 後続のあらゆる事例を基底段階に帰着させる一連の法則。
例えば、これは人間の祖先の再帰的定義である。ある人物の祖先は次のいずれかになる。
- その人物の親(基底段階)、または
- その人物の親の祖先(再帰段階)。
フィボナッチ数列は、再帰を用いた古典的な数式例である。
- 基底1として
再帰的なウィキペディアのページ。 たまに再帰は、計算機科学・プログラミング等の書物で、ジョークとして掲載される場合がある。そうした本では概して循環定義や自己参照が付されており、次のような馬鹿らしい項目が用語集として載っていることも珍しくない。
- 再帰については「再帰」を参照のこと[10]。
これは想定した再帰段階が基底段階へと帰着することなく、無限後退を引き起こすという(プログラミング失敗例の)洒落である。この手の最初のジョークは1975-76年に出版されたプログラム言語の教本『Let's talk Lisp 』と『in Software Tools』に見られる。これは関数型プログラミングを伝授する一環としての洒落で、上の書籍が出版される前に(米国の)プログラミング関連コミュニティで既に広まっていた。
もう一つの冗談が「再帰を理解するには、再帰を理解する必要がある」[10]というものである。英語版Googleウェブ検索エンジンで"recursion"を検索すると、同サイトでは一番上に"Did you mean: recursion(再帰って意味だったかな)"と赤く表示される[11][注釈 2]。
再帰的頭字語は、再帰を含んだ洒落の例である。例えば、PHP (プログラミング言語)は"PHP Hypertext Preprocessor"の略で、WINEは"WINE Is Not an Emulator"、GNUは"GNU's not Unix"を表す。
数学
シェルピンスキーのギャスケット-フラクタルを形成する三角形の再帰 日本国内の数学では、"Recursion"や"Recursive"に対して再帰の代わりに「帰納」の訳語をあてた数学用語も幾つか存在する(帰納的可算集合、帰納言語、帰納的関数など)。これは下にある「自然数の再帰的定義の例」でも分かるように、数学における再帰には数学的帰納法と原理的な共通性があるためである。
再帰的定義
→詳細は「再帰的定義」を参照例: 自然数
→「閉包」も参照再帰的に定義された集合の標準例が、自然数である。
-
0 は
再帰的な人形の例:一組のマトリョーシカ人形(1892年) ドロステ効果と呼ばれる再帰の視覚形式。このココア箱に描かれた女性の持つ盆の上にあるココア箱には、再び同じ構図の絵が描かれている。ジャン・ミュゼ画(1904) →「ドロステ効果」も参照ロシアで生まれたマトリョーシカ人形は、再帰という概念の物理的造形例で[15]、日本ではこうした形式を「入れ子細工」とも呼んでいる。
再帰は、1320年に作られたジョットの三連祭壇画 (Stefaneschi Triptych) 以来、絵画で使用されている。この中央パネルにはステファネスキ枢機卿のひざまずく姿があり、三連祭壇画自体を供物として掲げている[16][17]。この手法は一般的にドロステ効果と通称されており、紋中紋技法の一例である。
マウリッツ・エッシャーによる1956年の作品 (Print Gallery (M. C. Escher)) は、再帰的な絵を飾った画廊を含む歪んだ都市を描いた版画で、無限に堂々巡りする構図となっている[18]。
日本の文芸作品では、夢野久作の『ドグラ・マグラ』が再帰的である。本作の序盤に、記憶喪失の青年は『ドグラ・マグラ』なる小説(記憶喪失の精神患者が書いたもの)を見つけることになり、この作中作に綴られている展開や結末をなぞるかのように本作も展開していき混迷の結末へ、という入れ子構造が見られる[19]。
落語『頭山』の、自分自身の頭に出来た池に身投げしてしまう、というサゲも、再帰的なものとして言及されることがある。[20][21]
類似する概念
ここではプログラミング手続きの観点から、再帰との主な違いを述べる。
- 回帰 - 元々あったオブジェクト(元の位置や状態)に戻ってくる事を指す。
- 対して「再帰」は元々のオブジェクトではなく、その参照 (計算機科学)にあたる小さいオブジェクトを呼び出す。
- 「再帰処理」を使って幾何学模様を描いてみよう - マイナビ、関数プログラムを含めた解説
- Recursion - tutorial by Alan Gauld
- Zip Files All The Way Down
- リカーシブのページへのリンク