bugün məsləhət təsadüfi
sözaltı sözlük
postlar Yoxlama mesaj

11 yazar | 12 başlıq | 14 entry
yenilə | gündəm

son entrylər 14 yeni entry
#sözaltı wiki (3232)


replit eminali çoxları tərəfindən səhv bilinən məlumatlar ingmar bergman | kino solaris | kino duş alarkən mahnı dinləmək sivas qətliamı annie hall | kino acı uşaqlıq xatirələri əbədi peşmanlıqlar dual state mention mapping xpert azərbaycan kinosu sözaltı sözlük'ün ıssız olması ataya demək istənilənlər hamiləlik testi sözlüyün ən cool yazarı tarix əliyev milli maraqlar timidus suzuki akira polis deyəndə ağıla gələnlər yazarların hazırda düşündükləri azərbaycan polisi yaxşı polis pis polis sözlüyün boş olduğu saatlar sivas qətliamı anoreksiya rollo may ən yaxşı filmlər xəritəsi mossack fonseca & co








recursion



facebook twitter əjdaha lazımdı izlə dostlar   mən   googlla
məryəm mirzəxani - recursive loop
başlıqdakı ən bəyənilən yazılar:

+2 əjdaha

1. Bir dəfə bu başlığı sırf aşağıdakı şəkildə doldurmuşdum, lakin entry başlıq haqda kifayət qədər məlumat verməməsi səbəb göstərilərək silindi:
--spoiler--

(bax: recursion)


--spoiler--
Yəqin silən mod söhbət nədən gedir tutmadı, ya da ki zarafatın başlığa uyğun olması yenə də sözlük qaydalarında istisna yaratmırdı-*

"recur" (yenidən baş vermək) feilindən törəyən isim, xüsusilə, riyaziyyat və kompüter elmlərində geniş istifadə olunan konsept. Bir funksiyanın tərifində o funksiyanın özünün iştirak etməsi ilə yaranır. Məntiqən bir şeyin tərifində həmin şeyin özünün iştirak etməsi mənasız səslənə bilər. Məsələn: "dürüst insan özünə dürüst deyən insandır" tərifində "dürüst insan" qavramını izah edərkən elə o ifadənin özündən istifadə edilməsi "dürüst insan" anlayışının tamamilə havada qalmasına səbəb olur. Bəs özü-özünü tərifləndirən rekursiv funksiyalar necə mənalı ola bilir? Cavab funksiyanın tərifində həmçinin "base case" (əsas hal?) adlanan varsayımın iştirakıdır. Misal üçün, bir çoxumuzun , bəlkə də, eşitdiyi Fibonacci sırasında n-ci ədədi təyin edən funksiyaya baxaq:

F(n) := F(n - 1) + F(n - 2), n natural ədəddir və n >= 3.
Yəni n-ci Fibonacci ədədi özündən əvvəlki və ondan da əvvəlki ədədin cəminə bərabərdir. Deyək ki, 3-ci ədədi axtarırıq, bu zaman:

F(3) = F(2) + F(1). Məsələ odur ki, 2-ci və 1-ci yerdə duran ədədləri bilmədiyimiz üçün 3-cü yerdə duran ədədin də mənası olmur. Bu səbəbdən 1-ci və 2-ci ədədlərə base case olaraq default qiymətlər veririk. Fibonacci sırasında isə bu ədədlərin ikisinin də 1 olması qəbul olunub.

F(1) = 1
F(2) = 1

Bu zaman yerdə qalan ədədləri asanlıqa hesablaya bilərik:
F(3) = F(2) + F(1) = 1 1 = 2
F(4) = F(3) + F(2) = 2 1 = 3
F(5) = F(4) + F(3) = 2 3 = 5
F(6) = F(5) + F(4) = 5 3 = 8
...
F(i) = F(i - 1) + F(i - 2).

Deməli, Fibonacci sırasında n-ci ədədi müəyyən edən rekursiv funksiyanın tam tərifi aşağıdakı kimi olur:
F(1) = 1
F(2) = 1
F(n) := F(n -1) + F(n - 2), n natural əddədir və n >= 3.

Bundan əlavı faktorial funskiyası da rekursiv şəkildə təyin olunur:
0! = 1 (base case)
n! = n (n - 1)! , n tam ədəddir və n >= 0 (recursive step).

Proqramlaşdırmada isə, özü-özünü "call" edən funksiyalar recursion yaradır. Base case təyin edilmədikdə isə memory problemlərinə görə proqram kəsilir. Misal üçün, base case olmadıqda və ya düzgün yazılmadıqda Java-da "stackOverFlow Exception" şəklində xəta mesajı ilə proqram execution processinin sonuna çatmadan kəsilir.



hamısını göstər

recursion