In computer science, recursion is a method of solving a problem where the solution depends on solutions to smaller instances of the same problem. Such problems can generally be solved by iteration, but this needs to identify and index the smaller instances at programming time. Recursion solves such recursive problems by using functions that call themselves from within their own code. The approach can be applied to many types of problems, and recursion is one of the central ideas of computer science. — Niklaus Wirth, Algorithms + Data Structures = Programs, 1976

Property Value
dbo:abstract
  • الاستدعاء الذاتي أو العودية في علم الحاسوب هو طريقة التي فيها الحل لمسألة ما يعتمد على حلول مسائل أصغر من نفس النوع. بالإمكان تطبيق هذا النهج على أنواع عديدة من المسائل، وهو واحد من الأفكار المركزية بعلم الحاسوب. تدعم أغلب لغات البرمجة الاستدعاء الذاتي عن طريق السماح لدالة أن تستدعي نفسها ضمن نص البرنامج نفسه. بعض لغات البرمجة الوظيفة لا تعرّف مبان تكرارية (looping constructs) ولكن تعتمد فقط على الاستدعاء الذاتي لتكرار تنفيذ كود معين. برهنت نظرية الحاسوبية أن اللغات التي تستخدم الاستدعاء الذاتي فقط معادلة رياضياً للغات الحتمية، بمعنى أنه باستطاعتهم حل أي نوع من المسائل دون الحاجة لمباني التحكم النموذجية مثل حلقات "while" أو "for". (ar)
  • Rekurze je programovací technika, při níž je určitá procedura nebo funkce znovu volána dříve, než je dokončeno její předchozí volání. Použití rekurze může u některých úloh vést ke stručnému a matematicky elegantnímu řešení. Nevede ale nutně k řešení optimálnímu. Použití rekurze vede obvykle k jinému rozložení využití prostředků přidělených programu operačním systémem, případně k jejich rychlejšímu vyčerpání, proto se při optimalizaci programu většinou snažíme rekurzi omezit nebo odstranit. Některé (zejména starší) programovací jazyky a některé překladače rekurzi neumožňují; jiné vyžadují, aby programátor explicitně uvedl, že je daná procedura nebo funkce rekurzivní. Jednou ze základních součástí většiny programovacích jazyků jsou cykly. Existují však i jazyky, které místo cyklů využívají právě rekurzi. Jedná se například o Lisp či Prolog. (cs)
  • Un algorisme recursiu és aquell que fa ús de la recursivitat. En la pràctica, és un algorisme implementat en una funció que es crida a si mateixa. Li cal una condició de parada per a no entrar en un bucle infinit. Alguns algorismes recursius es poden reescriure com . Alguns exemples de recursivitat: * En un text:Per a saber què és la recursivitat, primer s'ha de saber què és la recursivitat. * En un acrònim:Què és GNU? → GNU No és Unix.Què és PHP? → PHP: Hipertext Preprocessor * En matemàtiques:f(x) = x * f(x-1) * En un algorisme:El càlcul del factorial d'un nombre es pot implementar amb un algorisme recursiu. En pseudocodi és:FUNCIÓ F := FACTORIAL (SENCER:N)SI N = 0F := 1SINÓF := N * FACTORIAL (N - 1)FI_SIFI_FUNCIÓ És a dir: El factorial de zero val 1; per a nombres més grans que zero, el factorial del nombre és aquest mateix nombre multiplicat pel factorial del nombre sencer immediatament més petit. (ca)
  • Bei der rekursiven Programmierung ruft sich eine Prozedur, Funktion oder Methode in einem Computerprogramm selbst wieder auf (d. h. enthält eine Rekursion). Auch der gegenseitige Aufruf stellt eine Rekursion dar. Wichtig bei der rekursiven Programmierung ist eine Abbruchbedingung in dieser Funktion, weil sich das rekursive Programm sonst (theoretisch) unendlich oft selbst aufrufen würde. Rekursive Programmierung kann unter anderem in prozeduralen und objektorientierten Programmiersprachen angewandt werden. Obwohl diese Sprachen in ihrem Sprachstandard die Rekursion ausdrücklich zulassen, stellen Selbstaufrufe und gegenseitige Aufrufe hier (aufgrund der verwendeten Programmierparadigmen) jedoch eher die Ausnahme dar. Auch wenn in der Praxis zur Verbesserung des Programmierstils (Lesbarkeit / einfachere Implementierung) auch hier durchaus häufig auf Rekursion zurückgegriffen wird, sind die meisten Funktionen in diesen Sprachen doch rein iterativ. In einigen Sprachen, wie z. B. in manchen funktionalen Programmiersprachen oder Makroprozessoren, muss die rekursive Programmiermethode zwingend verwendet werden, da iterative Sprachkonstrukte fehlen. (de)
  • Recursión es, en ciencias de la computación, una forma de atajar y solventar problemas. De hecho, recursión es una de las ideas centrales de ciencia de computación.​ Resolver un problema mediante recursión significa que la solución depende de las soluciones de pequeñas instancias del mismo problema.​ El poder de la recursión evidentemente se fundamenta en la posibilidad de definir un conjunto infinito de objetos con una declaración finita. Igualmente, un número infinito de operaciones computacionales puede describirse con un programa recursivo finito, incluso en el caso de que este programa no contenga repeticiones explícitas."​ La mayoría de los lenguajes de programación dan soporte a la recursión permitiendo a una función llamarse a sí misma desde el texto del programa. Los definen las estructuras de loops como while y for que son usadas para realizar tareas repetitivas. Algunos lenguajes de programación funcionales no definen estructuras de loops sino que posibilitan la recursión llamando código de forma repetitiva. La teoría de la computabilidad ha demostrado que estos dos tipos de lenguajes son matemáticamente equivalentes, es decir que pueden resolver los mismos tipos de problemas, aunque los lenguajes funcionales carezcan de las típicas estructuras while y for. (es)
  • In computer science, recursion is a method of solving a problem where the solution depends on solutions to smaller instances of the same problem. Such problems can generally be solved by iteration, but this needs to identify and index the smaller instances at programming time. Recursion solves such recursive problems by using functions that call themselves from within their own code. The approach can be applied to many types of problems, and recursion is one of the central ideas of computer science. The power of recursion evidently lies in the possibility of defining an infinite set of objects by a finite statement. In the same manner, an infinite number of computations can be described by a finite recursive program, even if this program contains no explicit repetitions. — Niklaus Wirth, Algorithms + Data Structures = Programs, 1976 Most computer programming languages support recursion by allowing a function to call itself from within its own code. Some functional programming languages do not define any looping constructs but rely solely on recursion to repeatedly call code. It is proved in computability theory that these recursive-only languages are Turing complete; this means that they are as powerful (they can be used to solve the same problems) as imperative languages based on control structures such as while and for. Repeatedly calling a function from within itself may cause the call stack to have a size equal to the sum of the input sizes of all involved calls. It follows that, for problems that can be solved easily by iteration, recursion is generally less efficient, and, for large problems, it is fundamental to use optimization techniques such as tail call optimization. (en)
  • 再帰(さいき)は、あるものについて記述する際に、記述しているものそれ自身への参照が、その記述中にあらわれることをいう。定義において、再帰があらわれているものを再帰的定義という。自己相似の記事も参照のこと。 主に英語のrecursionとその派生語の訳にあてられる。他にrecurrenceの訳(回帰#物理学及び再帰性を参照のこと)や、reflexiveの訳として「再帰」が使われることがある。数学的帰納法との原理的な共通性から、recursionの訳として数学では「帰納」を使うことがある。 (ja)
  • In informatica viene detto algoritmo ricorsivo un algoritmo espresso in termini di se stesso, ovvero in cui l'esecuzione dell'algoritmo su un insieme di dati comporta la semplificazione o suddivisione dell'insieme di dati e l'applicazione dello stesso algoritmo agli insiemi di dati semplificati. Tale tecnica risulta particolarmente utile per eseguire dei compiti ripetitivi su di un set di variabili in input. L'algoritmo richiama se stesso generando una sequenza di chiamate che ha termine al verificarsi di una condizione particolare che viene chiamata condizione di terminazione, che in genere si ha con particolari valori di input. La tecnica ricorsiva permette di scrivere algoritmi eleganti e sintetici per molti tipi di problemi comuni, anche se non sempre le soluzioni ricorsive sono le più efficienti. Questo è dovuto al fatto che comunemente la ricorsione viene implementata utilizzando le funzioni, e che l'invocazione di una funzione ha un costo rilevante, e questo rende più efficienti gli algoritmi iterativi. In alcuni casi la ricorsione è altrettanto efficiente di un ciclo iterativo: linguaggi dei paradigmi funzionali o logici tipicamente non hanno il concetto di ciclo ed usano la ricorsione ottimizzando automaticamente (). (it)
  • 컴퓨터 과학에 있어서 재귀(再歸, Recursion)는 자신을 정의할 때 자기 자신을 재참조하는 방법을 뜻하며, 이를 프로그래밍에 적용한 재귀 호출(Recursive call)의 형태로 많이 사용된다. 또 사진이나 그림 등에서 재귀의 형태를 사용하는 경우도 있다. (ko)
  • Recursie in informatica en computertechniek is een methode waar de oplossing van een probleem afhangt van oplossingen van kleinere identieke problemen, in tegenstelling tot iteratie. Deze benadering kan toegepast worden op veel soorten problemen en recursie is een basis van de informatietechnologie. Recursie komt in de wiskunde en in de informatica veel voor. Bewerkingen op getallen kunnen bijvoorbeeld worden geschreven als willekeurig grote samenstellingen van getallen en bewerkingen zoals optellen, aftrekken, vermenigvuldigen en delen. Veel wiskundige formalismen en computertalen worden daarom met recursieve grammatica's beschreven. (nl)
  • Em ciência da computação, a recursividade é a definição de uma sub-rotina (função ou método) que pode invocar a si mesma. Um exemplo de aplicação da recursividade pode ser encontrado nos analisadores sintáticos recursivos para linguagens de programação. A grande vantagem da recursão está na possibilidade de usar um programa de computador finito para definir, analisar ou produzir um estoque potencialmente infinito de sentenças, designs ou outros dados. (pt)
  • Рекурси́вная фу́нкция (от лат. recursio — возвращение) — это числовая функция числового аргумента, которая в своей записи содержит себя же. Такая запись позволяет вычислять значения на основе значений , подобно рассуждению по индукции. Чтобы вычисление завершалось для любого , необходимо, чтобы для некоторых функция была определена нерекурсивно (например, для ). (ru)
  • En rekursiv algoritm anropar sig själv. Ett exempel på ett sådant anrop är en funktion för beräkning av fakultet. n! = n·(n - 1)! = n·(n - 1)·(n - 2)! = ... , Då kan kan algoritmen skrivas som en rekursiv funktion, function fakultet (n)if n = 0 thenfakultet = 1 -- bassteg/terminerande anropelsefakultet = n · fakultet (n - 1) -- rekursivt anropend ifend function Raden fakultet = 1 är ett bassteg som terminerar anropskedjan vilket är nödvändigt för att undvika en oändlig följd av anrop. Ett problem med rekursiva funktioner är att de kan uppta för stor del av datorns minne genom för långa anropskedjor. Ett sätt att lösa detta är genom svansrekursion, eller genom att skriva den rekursiva funktionen som en slinga med ackumulator. De rekursiva fallens/stegens utförda arbete kan ses som sätt att bryta ner komplexa ingångsvärden till enklare sådana. I en rätt utformad rekursiv algoritm måste med varje rekursivt steg det ingående problemet förenklas på ett sådant sätt att basfallen till slut uppnås. Underlåtenhet att skriva ett basfall, eller att felaktigt testa för basfallet, kan orsaka en oändlig anropskedja. (sv)
  • Процедура рекурсивна — процедура в програмуванні, у тілі якої знаходиться явне звернення до неї самої, або через іншу процедуру. Застосування рекурсивних процедур, у багатьох випадках допомагає скоротити алгоритми, зробити їхню форму компактнішою. (uk)
  • 遞迴(英語:recursion)在電腦科學中是指一種通過重複將問題分解為同類的子問題而解決問題的方法。 遞迴式方法可以被用於解決很多的電腦科學問題,因此它是電腦科學中十分重要的一個概念。 絕大多數程式語言支援函式的自呼叫,在這些語言中函式可以通過呼叫自身來進行遞迴。計算理論可以證明遞迴的作用可以完全取代迴圈,因此有很多在函數程式語言(如Scheme)中用递归来取代循环的例子。 電腦科學家尼克勞斯·維爾特如此描述遞迴: 遞迴的強大之處在於它允許使用者用有限的語句描述無限的物件。因此,在電腦科學中,遞迴可以被用來描述無限步的運算,儘管描述運算的程式是有限的。 ——尼克勞斯·維爾特 (zh)
dbo:thumbnail
dbo:wikiPageExternalLink
dbo:wikiPageID
  • 4044867 (xsd:integer)
dbo:wikiPageLength
  • 58641 (xsd:integer)
dbo:wikiPageRevisionID
  • 984715960 (xsd:integer)
dbo:wikiPageWikiLink
dbp:author
  • dbr:Niklaus_Wirth
  • Matthias Felleisen (en)
  • Felleisen, Findler, Flatt, and Krishnaurthi (en)
dbp:cs1Dates
  • y (en)
dbp:date
  • March 2020 (en)
dbp:source
  • Advanced Functional Programming, 2002 (en)
  • Algorithms + Data Structures = Programs, 1976 (en)
  • How to Design Programs, 2001 (en)
dbp:text
  • [Functions that consume structured data] typically decompose their arguments into their immediate structural components and then process those components. If one of the immediate components belongs to the same class of data as the input, the function is recursive. For that reason, we refer to these functions as RECURSIVE FUNCTIONS. (en)
  • Many well-known recursive algorithms generate an entirely new piece of data from the given data and recur on it. HtDP (How to Design Programs) refers to this kind as generative recursion. Examples of generative recursion include: gcd, quicksort, binary search, mergesort, Newton's method, fractals, and adaptive integration. (en)
  • The power of recursion evidently lies in the possibility of defining an infinite set of objects by a finite statement. In the same manner, an infinite number of computations can be described by a finite recursive program, even if this program contains no explicit repetitions. (en)
dbp:url
  • ftp://nozdr.ru/biblio/kolxo3/Cs/CsLn/Advanced%20Functional%20Programming%204%20conf.,%20AFP%202002%20.pdf#page=109 (en)
dbp:wikiPageUsesTemplate
dct:subject
rdf:type
rdfs:comment
  • 再帰(さいき)は、あるものについて記述する際に、記述しているものそれ自身への参照が、その記述中にあらわれることをいう。定義において、再帰があらわれているものを再帰的定義という。自己相似の記事も参照のこと。 主に英語のrecursionとその派生語の訳にあてられる。他にrecurrenceの訳(回帰#物理学及び再帰性を参照のこと)や、reflexiveの訳として「再帰」が使われることがある。数学的帰納法との原理的な共通性から、recursionの訳として数学では「帰納」を使うことがある。 (ja)
  • 컴퓨터 과학에 있어서 재귀(再歸, Recursion)는 자신을 정의할 때 자기 자신을 재참조하는 방법을 뜻하며, 이를 프로그래밍에 적용한 재귀 호출(Recursive call)의 형태로 많이 사용된다. 또 사진이나 그림 등에서 재귀의 형태를 사용하는 경우도 있다. (ko)
  • Recursie in informatica en computertechniek is een methode waar de oplossing van een probleem afhangt van oplossingen van kleinere identieke problemen, in tegenstelling tot iteratie. Deze benadering kan toegepast worden op veel soorten problemen en recursie is een basis van de informatietechnologie. Recursie komt in de wiskunde en in de informatica veel voor. Bewerkingen op getallen kunnen bijvoorbeeld worden geschreven als willekeurig grote samenstellingen van getallen en bewerkingen zoals optellen, aftrekken, vermenigvuldigen en delen. Veel wiskundige formalismen en computertalen worden daarom met recursieve grammatica's beschreven. (nl)
  • Em ciência da computação, a recursividade é a definição de uma sub-rotina (função ou método) que pode invocar a si mesma. Um exemplo de aplicação da recursividade pode ser encontrado nos analisadores sintáticos recursivos para linguagens de programação. A grande vantagem da recursão está na possibilidade de usar um programa de computador finito para definir, analisar ou produzir um estoque potencialmente infinito de sentenças, designs ou outros dados. (pt)
  • Рекурси́вная фу́нкция (от лат. recursio — возвращение) — это числовая функция числового аргумента, которая в своей записи содержит себя же. Такая запись позволяет вычислять значения на основе значений , подобно рассуждению по индукции. Чтобы вычисление завершалось для любого , необходимо, чтобы для некоторых функция была определена нерекурсивно (например, для ). (ru)
  • Процедура рекурсивна — процедура в програмуванні, у тілі якої знаходиться явне звернення до неї самої, або через іншу процедуру. Застосування рекурсивних процедур, у багатьох випадках допомагає скоротити алгоритми, зробити їхню форму компактнішою. (uk)
  • 遞迴(英語:recursion)在電腦科學中是指一種通過重複將問題分解為同類的子問題而解決問題的方法。 遞迴式方法可以被用於解決很多的電腦科學問題,因此它是電腦科學中十分重要的一個概念。 絕大多數程式語言支援函式的自呼叫,在這些語言中函式可以通過呼叫自身來進行遞迴。計算理論可以證明遞迴的作用可以完全取代迴圈,因此有很多在函數程式語言(如Scheme)中用递归来取代循环的例子。 電腦科學家尼克勞斯·維爾特如此描述遞迴: 遞迴的強大之處在於它允許使用者用有限的語句描述無限的物件。因此,在電腦科學中,遞迴可以被用來描述無限步的運算,儘管描述運算的程式是有限的。 ——尼克勞斯·維爾特 (zh)
  • الاستدعاء الذاتي أو العودية في علم الحاسوب هو طريقة التي فيها الحل لمسألة ما يعتمد على حلول مسائل أصغر من نفس النوع. بالإمكان تطبيق هذا النهج على أنواع عديدة من المسائل، وهو واحد من الأفكار المركزية بعلم الحاسوب. (ar)
  • Un algorisme recursiu és aquell que fa ús de la recursivitat. En la pràctica, és un algorisme implementat en una funció que es crida a si mateixa. Li cal una condició de parada per a no entrar en un bucle infinit. Alguns algorismes recursius es poden reescriure com . Alguns exemples de recursivitat: És a dir: El factorial de zero val 1; per a nombres més grans que zero, el factorial del nombre és aquest mateix nombre multiplicat pel factorial del nombre sencer immediatament més petit. (ca)
  • Rekurze je programovací technika, při níž je určitá procedura nebo funkce znovu volána dříve, než je dokončeno její předchozí volání. Použití rekurze může u některých úloh vést ke stručnému a matematicky elegantnímu řešení. Nevede ale nutně k řešení optimálnímu. Použití rekurze vede obvykle k jinému rozložení využití prostředků přidělených programu operačním systémem, případně k jejich rychlejšímu vyčerpání, proto se při optimalizaci programu většinou snažíme rekurzi omezit nebo odstranit. (cs)
  • Bei der rekursiven Programmierung ruft sich eine Prozedur, Funktion oder Methode in einem Computerprogramm selbst wieder auf (d. h. enthält eine Rekursion). Auch der gegenseitige Aufruf stellt eine Rekursion dar. Wichtig bei der rekursiven Programmierung ist eine Abbruchbedingung in dieser Funktion, weil sich das rekursive Programm sonst (theoretisch) unendlich oft selbst aufrufen würde. In einigen Sprachen, wie z. B. in manchen funktionalen Programmiersprachen oder Makroprozessoren, muss die rekursive Programmiermethode zwingend verwendet werden, da iterative Sprachkonstrukte fehlen. (de)
  • In computer science, recursion is a method of solving a problem where the solution depends on solutions to smaller instances of the same problem. Such problems can generally be solved by iteration, but this needs to identify and index the smaller instances at programming time. Recursion solves such recursive problems by using functions that call themselves from within their own code. The approach can be applied to many types of problems, and recursion is one of the central ideas of computer science. — Niklaus Wirth, Algorithms + Data Structures = Programs, 1976 (en)
  • Recursión es, en ciencias de la computación, una forma de atajar y solventar problemas. De hecho, recursión es una de las ideas centrales de ciencia de computación.​ Resolver un problema mediante recursión significa que la solución depende de las soluciones de pequeñas instancias del mismo problema.​ (es)
  • In informatica viene detto algoritmo ricorsivo un algoritmo espresso in termini di se stesso, ovvero in cui l'esecuzione dell'algoritmo su un insieme di dati comporta la semplificazione o suddivisione dell'insieme di dati e l'applicazione dello stesso algoritmo agli insiemi di dati semplificati. In alcuni casi la ricorsione è altrettanto efficiente di un ciclo iterativo: linguaggi dei paradigmi funzionali o logici tipicamente non hanno il concetto di ciclo ed usano la ricorsione ottimizzando automaticamente (). (it)
  • En rekursiv algoritm anropar sig själv. Ett exempel på ett sådant anrop är en funktion för beräkning av fakultet. n! = n·(n - 1)! = n·(n - 1)·(n - 2)! = ... , Då kan kan algoritmen skrivas som en rekursiv funktion, function fakultet (n)if n = 0 thenfakultet = 1 -- bassteg/terminerande anropelsefakultet = n · fakultet (n - 1) -- rekursivt anropend ifend function (sv)
rdfs:label
  • استدعاء ذاتي (علم الحاسوب) (ar)
  • Algorisme recursiu (ca)
  • Rekurze (programování) (cs)
  • Rekursive Programmierung (de)
  • Recursión (ciencias de computación) (es)
  • Recursion (computer science) (en)
  • Algoritmo ricorsivo (it)
  • 再帰 (ja)
  • 재귀 (컴퓨터 과학) (ko)
  • Recursie (informatica) (nl)
  • Recursividade (ciência da computação) (pt)
  • Рекурсивная функция (ru)
  • Рекурсія (програмування) (uk)
  • Rekursiv algoritm (sv)
  • 递归 (计算机科学) (zh)
rdfs:seeAlso
owl:sameAs
prov:wasDerivedFrom
foaf:depiction
foaf:isPrimaryTopicOf
is dbo:wikiPageDisambiguates of
is dbo:wikiPageRedirects of
is dbo:wikiPageWikiLink of
is rdfs:seeAlso of
is foaf:primaryTopic of