Рекурсія (програмування)

Дерево створене мовою Лого з використанням рекурсії. Кожну гілку можна розглядати як меншу версію дерева.

В програмуванні і інформатиці, рекурсія є методом розв'язання обчислювальної задачі[en] при якому розв'язок покладається на розв'язки менших випадків цієї ж задачі.[1][2] Рекурсія розв'язує такі рекурсивні задачі використовуючи функції чи процедури, які викликають самі себе. Цей підхід можна застосувати до багатьох задач, і рекурсія є однією з центральних ідей інформатики.[3]

Процедура рекурсивнапроцедура в програмуванні, у тілі якої знаходиться явне звернення до неї самої, або через іншу процедуру.[4]

Сила рекурсії очевидно лежить в можливості визначення нескінченної множини об'єктів скінченним виразом. Таким же чином нескінченна кількість обчислень може бути описана скінченною рекурсивною програмою, навіть якщо ця програма не містить явних повторів.
— Ніклаус ВіртAlgorithms + Data Structures = Programs, 1976[5]

Більшість мов програмування підтримують рекурсію, дозволяючи функції викликати себе з власного коду. Деякі мови функціонального програмування (наприклад, Clojure)[6] не містять ніяких конструкцій для циклів, і покладаються лише на рекурсію для багаторазового виконання коду. В теорії обчислювальності доведено що мови які містять лише рекурсію повні за Тюрінгом; це означає що вони такі ж потужні (можуть використовуватись для розв'язання таких самих задач) як і імперативні мови на основі таких структур як while та for.

Багаторазовий виклик функції собою може призвести до того що стек викликів матиме розмір що дорівнює сумі розмірів вхідних аргументів для всіх викликів. З цього випливає, що для задач які можна легко розв'язати ітерацією, рекурсія буде менш ефективна, і для великих задач критично використовувати методи оптимізації, такі як оптимізація хвостової рекурсії.

Застосування рекурсивних процедур, у багатьох випадках допомагає скоротити алгоритми, зробити їхню форму компактнішою.

Приклади

Рекурсивні процедури використовують, зокрема, для описання алгоритмів обчислення значень функцій, які задаються рекурентними співвідношеннями, наприклад[4]:

Види рекурсії

За рівнем рекурсії

Кількість рекурсивних входів називається рівнем рекурсії.[4]

Рекурсія яка містить лише один самовиклик називається одиничною (англ. single recursion), а та яка має багато самовикликів — багатократною (англ. multiple recursion). Приклади одиничною рекурсії — обхід списку, лінійний пошук, обчислення факторіалу. Приклади багатократної — обхід дерева, пошук в глибину.

Одинична рекурсія обчислювально набагато ефективніша за багатократну, і зазвичай може бути заміненою ітерацією, яка потребує лінійного часу і константної пам'яті. Множинна рекурсія натомість потребує експоненційних ресурсів часу і пам'яті, і не може бути просто замінена ітерацією без використання явного стеку.

Множинну рекурсію іноді можна замінити одиничною (і, при потребі, ітерацією). Наприклад, наївний метод обчислення послідовності Фібоначчі використовує множинну рекурсію, так як кожне значення потребує двох попередніх, але його можна обчислити одиничною рекурсією, передаючи два послідовні значення як параметри. Більш природньо це описується корекурсією, яка накопичує результат з початкових значень, відслідковуючи два сусідні значення на кожному кроці. Див. Корекурсія#Послідовність Фібоначчі для прикладу. Складнішим прикладом може бути прошите двійкове дерево[en], що дозволяє здійснювати ітеративний обхід, а не тільки багатократну рекурсію.

Непряма рекурсія

Докладніше: Взаємна рекурсія

Найпростіші приклади рекурсії, і більшість прикладів тут демонструють пряму рекурсію, в якій функція викликає себе. Непряма рекурсія з'являється тоді коли функція викликається не собою, а іншою функцією, яку вона (прямо або непрямо) викликала. Наприклад, якщо f викликає f, це пряма рекурсія, але якщо в f викликає g яка викликає f, тоді це непряма рекурсія. Можливі ланцюги з більшої кількості функцій, наприклад перша функція викликає другу, друга третю і т.д, а остання - знову першу.

Непряму рекурсію також називають взаємною рекурсією. Цей термін має те ж значення, просто робить наголос на іншому аспекті. Тобто якщо f викликає g і g викликає f, з точки зору лише f, f непрямо рекурсивна. З точки зору лише g, g - непрямо рекурсивна. А з точки зору обох, чи збоку, вони взаємно рекурсивні одна для одної. Подібно множина трьох і більше функцій може називатись множиною взаємно рекурсивних функцій.

Анонімна рекурсія

Докладніше: Анонімна рекурсія

Див. також

Зноски

  1. Graham, Ronald; Knuth, Donald; Patashnik, Oren (1990). 1: Recurrent Problems. Concrete Mathematics (англ.). Addison-Wesley. ISBN 0-201-55802-5. Архів оригіналу за 6 листопада 2020. Процитовано 27 жовтня 2023.
  2. Kuhail, M. A.; Negreiros, J.; Seffah, A. (2021). Teaching Recursive Thinking using Unplugged Activities (PDF). WTE&TE (англ.). 19: 169—175.
  3. Epp, Susanna (1995). Discrete Mathematics with Applications (англ.) (вид. 2nd). PWS Publishing Company. с. 427. ISBN 978-0-53494446-9.
  4. а б в ЕК1973, с. 332.
  5. Wirth, Niklaus (1976). Algorithms + Data Structures = Programs (англ.). Prentice-Hall. с. 126. ISBN 978-0-13022418-7.
  6. Functional Programming | Clojure for the Brave and True. www.braveclojure.com. Процитовано 21 жовтня 2020.

Література

Посилання


Read other articles:

Pemilihan umum Wali Kota Pariaman 20242018202927 November 2024Kandidat Peta persebaran suara Wali Kota dan Wakil Wali Kota petahanaGenius Umar Independen Wali Kota dan Wakil Wali Kota terpilih belum diketahui Pemilihan umum Wali Kota Pariaman 2024 (selanjutnya disebut Pilkada Kota Pariaman 2024) dilaksanakan pada 27 November 2024 untuk memilih Wali Kota Pariaman periode 2024-2029.[1] Pemilihan Wali Kota (Pilwalkot) Pariaman tahun tersebut akan diselenggarakan setelah Pemilihan umum P...

 

Front BaratBagian dari Perang Dunia ITentara Britania terluka di Bernafay Wood selama Pertempuran Somme, 19 Juli 1916.Tanggal4 Agustus 1914 – 11 November 1918(4 tahun, 3 bulan dan 1 minggu)LokasiBelgia, timur laut Prancis, Alsace-Lorraine (sekarang Prancis) dan barat JermanHasil Kemenangan menentukan Entente Gencatan senjata CompiègnePihak terlibat Kekuatan Sekutu: Prancis Kekaisaran kolonial Prancis Imperium Britania Australia  Bermuda Kanada  India  New...

 

Морской царь Открытка работы Ивана Билибина царь морей и океанов Мифология Славянская Местность Дно морское, Ильмень-озеро Сфера влияния море и океан Пол мужской Дети Василиса Премудрая и ещё 12 морских дев Связанные персонажи Садко, морские девы Атрибуты венец, вес�...

Kampanye Militer Zhejiang-JiangxiBagian dari Perang Tiongkok-Jepang KeduaSeorang prajurit Jepang dengan granat seukuran 50mm pada saat Kampanye Militer Zhejiang-Jiangxi, 30 Mei 1942.TanggalPertengahan Mei - Awal September 1942LokasiSekitaran Zhejiang, JiangxiHasil Kemenangan taktikal JepangKemenangan strategis TiongkokPihak terlibat Tentara Revolusioner Nasional, China Angkatan Darat Kekaisaran Jepang, JepangTokoh dan pemimpin Gu Zhutong Huang Baitao Shunroku HataKekuatan 300,000 180,000Korba...

 

كفور الرمل  -  قرية مصرية -  تقسيم إداري البلد  مصر المحافظة المنوفية المركز قويسنا المسؤولون السكان التعداد السكاني 6,806 نسمة (إحصاء 2006) معلومات أخرى التوقيت ت ع م+02:00  تعديل مصدري - تعديل   كفور الرمل إحدى قرى مركز قويسنا التابع لمحافظة المنوفية في جمهورية م�...

 

Town in Massachusetts, United StatesMillville, MassachusettsTownUdor Tower, Millville SealMotto(s): Diligentia et Concordia (Latin)Diligence and HarmonyLocation in Worcester County and the state of Massachusetts.Coordinates: 42°01′40″N 71°34′53″W / 42.02778°N 71.58139°W / 42.02778; -71.58139CountryUnited StatesStateMassachusettsCountyWorcesterSettled1662Incorporated1916Government • TypeOpen town meetingArea • Total5.0 sq&#...

Residential skyscraper in Manhattan, New York 40°42′19.44″N 74°0′36″W / 40.7054000°N 74.01000°W / 40.7054000; -74.01000 15 WilliamGeneral informationStatusCompletedTypeResidential condominiumAddress15 William Street, New York, NY 10005Construction started2004Completed2008HeightRoof528 feet (161 m)Technical detailsFloor count47Design and constructionArchitect(s)Tsao & McKown, Ismael Leyva Architects, SLCE Architects, SPAN Architecture, and Allied Wo...

 

† Человек прямоходящий Научная классификация Домен:ЭукариотыЦарство:ЖивотныеПодцарство:ЭуметазоиБез ранга:Двусторонне-симметричныеБез ранга:ВторичноротыеТип:ХордовыеПодтип:ПозвоночныеИнфратип:ЧелюстноротыеНадкласс:ЧетвероногиеКлада:АмниотыКлада:Синапсиды�...

 

Megan Rapinoe Megan Rapinoe pada September 2019Informasi pribadiNama lengkap Megan Anna RapinoeTanggal lahir 5 Juli 1985 (umur 38)Tempat lahir Redding, California, Amerika SerikatTinggi 168 cm (5 ft 6 in)Posisi bermain GelandangInformasi klubKlub saat ini OL ReignNomor 15Karier junior2002–2005 Elk Grove Pride2005–2008 Universitas PortlandKarier senior*Tahun Tim Tampil (Gol)2009–2010 Chicago Red Stars 38 (3)2011 Philadelphia Independence 4 (1)2011 MagicJack 10 (3)201...

Mural in Seattle, Washington, U.S. Not to be confused with Black Lives Matter street mural (Capitol Hill, Seattle). Black Lives Matter street muralThe mural in 2022Year2021 (2021)LocationSeattle, Washington, U.S.Coordinates47°36′12.5″N 122°19′49.2″W / 47.603472°N 122.330333°W / 47.603472; -122.330333 A Black Lives Matter mural was painted outside Seattle City Hall, in the U.S. state of Washington, in 2021. Description and history The mural which reads ...

 

PDLIM2 التراكيب المتوفرة بنك بيانات البروتينOrtholog search: PDBe RCSB قائمة رموز معرفات بنك بيانات البروتين 2PA1, 3PDV المعرفات الأسماء المستعارة PDLIM2, MYSTIQUE, SLIM, PDZ and LIM domain 2 معرفات خارجية الوراثة المندلية البشرية عبر الإنترنت 609722 MGI: MGI:2384850 HomoloGene: 11006 GeneCards: 64236 علم الوجود الجيني الوظيفة الجزي�...

 

Baseball training events held in Beijing, China Wukesong Baseball Field in Beijing Trevor Hoffman, second all-time Major League Baseball saves leader behind Mariano Rivera, pitches in Game 1 Cheerleaders during the game The Major League Baseball China Series, or MLB China Series, were two 2008 spring training games between the San Diego Padres and Los Angeles Dodgers played in the People's Republic of China. It marked the first time Major League Baseball teams played in China, part of an effo...

Mirko Ivanovski Nazionalità  Macedonia del Nord Altezza 182 cm Peso 78 kg Calcio Ruolo Attaccante Squadra  Concordia Chiajna CarrieraGiovanili  PelisterSquadre di club1 2007-2008 Pelister8 (0)2008-2010 Makedonija G.P.35 (9)2010→  Slavia Praga10 (3)2010-2012 Arka Gdynia44 (6)2012-2014 Astra Giurgiu45 (11)2014 CFR Cluj14 (2)2015-2016 Videoton16 (2)2016 Boluspor10 (0)2016-2018 Slaven Belupo63 (25)2018-2019 Hajduk Spalato20 (5)2...

 

Questa voce sull'argomento calciatori canadesi è solo un abbozzo. Contribuisci a migliorarla secondo le convenzioni di Wikipedia. Segui i suggerimenti del progetto di riferimento. Charles Gbeke Nazionalità  Canada Altezza 188 cm Calcio Ruolo Attaccante Termine carriera 2010 CarrieraGiovanili 1998 Vancouver 86ersSquadre di club1 1999-2000 Troyes 2? (?)2000 Comercial-SP? (?)2001 Matsubara? (?)2001 Vancouver Whitecaps3 (0)2002 Seattle Sounders1 (0)2002-...

 

School in Houston, Texas, United StatesStrake Jesuit College PreparatoryAddress8900 Bellaire BoulevardHouston, Texas 77036-4699United StatesCoordinates29°42′29″N 95°32′23″W / 29.70809°N 95.53979°W / 29.70809; -95.53979InformationTypePrivate independent college-preparatory schoolReligious affiliation(s)Roman CatholicJesuitPatron saint(s)Stanislaus KostkaEstablishedJune 21, 1960; 63 years ago (June 21, 1960)FounderMichael KenelleyPresidentFr. Je...

Canada's first space telescope Microvariability and Oscillations of Stars/Microvariabilité et Oscillations STellaireNamesMOSTMission typeAstronomyOperatorCSACOSPAR ID2003-031D SATCAT no.27843WebsiteMOST home pageMission durationFinal: 15 years, 9 months Spacecraft propertiesLaunch mass53 kg (117 lb)Dimensions60 cm × 60 cm × 24 cm (23.6 in × 23.6 in × 9.4 in)Power35 W Start of missionLaunch date30 June 2003, 14:15&...

 

U.S. presidential administration from 1981 to 1989 For a chronological guide, see Timeline of the Ronald Reagan presidency. Presidency of Ronald ReaganJanuary 20, 1981 – January 20, 1989CabinetSee listPartyRepublicanElection19801984SeatWhite House← Jimmy CarterGeorge H. W. Bush → Seal of the presidentLibrary website This article is part of a series aboutRonald Reagan Personal life Filmography Bibliography Death Residences Birthplace of Ronald Reagan Ronald Rea...

 

هذه المقالة يتيمة إذ تصل إليها مقالات أخرى قليلة جدًا. فضلًا، ساعد بإضافة وصلة إليها في مقالات متعلقة بها. (يناير_2012) ايميل فيروسي أو بريد إلكتروني فيروسي (المعروفة أيضا باسم تمرير البريد الإلكتروني على طول) هو نوع معين من رسائل البريد الإلكتروني التي تنتشر بسرعة من شخص لآخر...

Este artículo o sección tiene referencias, pero necesita más para complementar su verificabilidad. Busca fuentes: «Tercera División A de Chile» – noticias · libros · académico · imágenesEste aviso fue puesto el 21 de junio de 2019. Tercera División A de Chile Tercera División A de Chile 2024 Datos generalesDeporte FútbolSede Chile ChileNivel de competencia Semiprofesional[2]​[3]​Confederación CONMEBOLContinente América del SurNombre ofici...

 

سفارة إندونيسيا في ماليزيا إندونيسيا ماليزيا   الإحداثيات 3°08′48″N 101°43′19″E / 3.1466666666667°N 101.72194444444°E / 3.1466666666667; 101.72194444444   البلد ماليزيا  المكان كوالالمبور  الاختصاص ماليزيا  الموقع الالكتروني الموقع الرسمي  تعديل مصدري - تعديل   سفارة إندونيسي�...