Kas probleem vastab "tunnusjoontele"? (1), (2) ja (3) ilmselt klapivad. (4): kas vôime tagada ülemineku (n - 1)-lt n-ile? Näide. n = 5 (vt. joonist 6): kui tôstame n - 1 ketast a-lt c kaudu b-le, saab tôsta 1 ketta a-lt c-le ja 4 ketast b-lt a kaudu c-le. Klapib. Rekursiivne lahendus on mitterekursiivsest aeglasem, kuid on tavaliselt lihtne ja lühike, tihti on rekursiivne algoritm loomulik ja loogiline (järeldub rekursiivsest definitsioonist), üritage lahendada Hanoi tornide probleemi mitterekursiivsena! Kas ônnestub? Rekursiivsed tôestused Rekursiivsed tôestused on laialt levinud tôestuste vorm. Et kasutada rekursiivset tôestust, peavad olema jällegi olemas 4 tunnusjoont (vt. eespool). Olgu tarvis leida minimaalne tôstete arv Hanoi tornide ülesande lahendamisel. On lihtne leida, et 1 ketta puhul tuleb teha 1 tôste, 2 ketta puhul 3 ja 3 ketta puhul 7 tôstet
LapsID <> P.LapsID GO -- Määrame ka peetri kahe lapse rühmajuhiks UPDATE dbo.Laps_tbl SET RyhmaJuht = 12 WHERE LapsID IN (2,10) -- lisame uue Lapse, kellest saab suurib pealik DECLARE @UusLapsID INT INSERT INTO dbo.Laps_tbl (Nimi, Synniaasta) VALUES ('Roobert', 1988) SET @UusLapsID = @@identity UPDATE dbo.Laps_tbl SET Ryhmajuht = @UusLapsID WHERE Ryhmajuht IS NULL AND LapsID <> @UusLapsID Kui kõik tehtud on meie tabel järgmine: Alustame hästi lihtsast rekursiivsest päringust püüdes välja selgitada, kes alluvad Matile: WITH Alluvad AS ( SELECT LapsID, Nimi, Ryhmajuht FROM dbo.Laps_tbl WHERE LapsID = 3 UNION ALL SELECT L.LapsID, L.Nimi, L.Ryhmajuht FROM dbo.Laps_tbl AS L INNER JOIN Alluvad AS A ON L.RyhmaJuht = A.LapsID ) SELECT A.LapsID, A.Nimi, L.Nimi AS Ryhmajuht FROM Alluvad AS A INNER JOIN dbo.Laps_tbl AS L ON A.RyhmaJuht = L.LapsID