Junior — Middle
Тавзеҳ диҳед дар бораи консепсияи функсияҳои рекурсивӣ ва чӣ гуна кор мекунанд
sobes.tech AI
Ҷавоб аз AI
Функсияи рекурсивӣ функсияест, ки худро барои ҳалли масъала даъват мекунад. Вай масъалаҳоро ба вазифаҳои хурдтар ва оддӣтар, ҳамон навъи масъала, тақсим мекунад, то ки ба ҳолати асосӣ расад, ки дар он даъватҳои иловагӣ лозим нест.
Принсипи кор:
- Функсия худро бо параметрҳои тағйирёфта даъват мекунад, то ҳалли онро ба ҳолати асосӣ наздиктар созад.
- Вақте ки ҳолати асосӣ ба даст меояд, функсия оғоз мекунад, ки натиҷаҳоро дар зери занҷираи даъватҳо баргардонад.
Масалан: ҳисоб кардани факториал н (n!)
def factorial(n):
if n == 0:
return 1 # ҳолати асосӣ
else:
return n * factorial(n - 1) # даъвати рекурсивӣ
Ин ҷо, factorial худро бо n-1 даъват мекунад, то ки ба 0 расад, пас оғоз мекунад, ки арзишҳоро ба боло баргардонад.
Рекурсия барои вазифаҳое, ки табиатан ба вазифаҳои хурдтар тақсим мешаванд, муфид аст, масалан, гузариш дар дарахтҳо, ҳисоб кардани рақамҳои Fibonacci, сортинг ва ғайра.