Hell2
4 سال پیش توسط Hell2 مطرح شد
4 پاسخ

تابع ریکرسیو

سلام، کسی میتونه تابع ریکرسیو رو به زبون ساده برام توضیح بده؟ اصلا به چه دردی میخوره و از کجا بفهمیم یه تابع رو باید ریکرسیو بنویسیم؟


ثبت پرسش جدید
میلاد-م
تخصص : توسعه‌دهنده رابط کاربری - Fron...
@milad 4 سال پیش مطرح شد
2

تابع بازگشتی به تابعی میگن که در بدنه ی تابع، مجدد خودش رو صدا بزنه. تا زمانی که به شرط های پایه برسه این تابع خودش رو صدا میزنه.
بعضی صورت مسئله ها هستند که نوشتن تابع بازگشتی براشون راحت تره.
مثلا: دنباله فیبوناتچی، هر عدد، مجموعه ی دو عدد قبلی خودش هستش و جملات اول و دوم هم عدد یک هستش.
درین جا نوشتن تابعی که بتونه جمله ی Nا ُم دنباله رو محاسبه کنه، به روش بازگشتی خیلی ساده تر هستش (شما سعی کنید به روش غیر بازگشتی بنویسید، می بینید که ساده نخواهد بود و محاسبات ریاضیاتی لازم داره).

function fibonacci ( n ) {
  if (n==1 || n==2) return 1;
  else { return fibonacci (n-2) + fibonacci (n-1); }
}

fibonacci(1);      // output: 1
fibonacci(2);      // output: 1
fibonacci(6);      // output: 8
fibonacci(10);    // output: 55

Hell2
تخصص : Html, Css, Javascript, Jquery,...
@masturdating 4 سال پیش مطرح شد
0

@milad
خب تشخیص اینکه یه تابع رو باید بازگشتی بنویسیم یا معمولی چجوریه؟


profnami
تخصص : برنامه نویس
@nader.minaie 4 سال پیش مطرح شد
2

ببینید شما یه تابع لازم دارید که مثلا براتون 2+2 رو محاسبه کنه. حالا درون اون تابع احتیاج دارید که دوباره 2+2 رو محاسبه کنید. آیا میایید 2 تا تابع برای این کار مینویسید؟ طبیعتا خیر. شما یک تابع مینویسید و در درون اون دوباره تابعتون رو فراخونی میکنید. این میشه تابع بازگشتی. پس هر وقت در درون یک تابع لازم دیدید دوباره همون کار رو تکرار کنید از تابع بازگشتی استفاده میکنید! به همین راحتی. امیدوارم که منظورم رو رسونده باشم. تابع فیبوناجی یه نمونه ساده و قابل هم این نمونه تابع هاست.


میلاد-م
تخصص : توسعه‌دهنده رابط کاربری - Fron...
@milad 4 سال پیش مطرح شد
0

اکثر مواقع نیاز به تابع بازگشتی نیست، این به صورت مسئله برمیگرده.
شما از روی حل مسائل مختلف درین زمینه می تونید به درک درین باره دست پیدا کنید.

شکل این مسائل طوری هستش که ما میتونیم یک دنباله رو، براساس جملات قبلی اون دنباله محاسبه کنیم.
در مثالی که زدم هم این قضیه مشهود بودش.


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام