{CodeGate}

سری فیبوناچی در سی شارپ (Fibonacci)

در این آموزش تیم کدگیت را با توضیح سری فیبوناچی در سی شارپ همراهی کنید. پیش نیاز این آموزش شامل موارد زیر است:

  1. آشنایی با if
  2. آشنایی با for
  3. آشنایی با روش بازگشتی
  4. آشنایی با متد

سری فیبوناچی

در ریاضیات سری فیبوناچی به دنباله‌ای از اعداد گفته می‌شود که بصورت زیر تعریف می‌شود:

سری فیبوناچی در جاوا

غیر از دو عدد اول اعداد بعدی از جمع دو عدد قبلی خود بدست می‌آید. اولین اعداد این سری عبارت‌اند از:

۰٬ ۱٬ ۱٬ ۲٬ ۳٬ ۵٬ ۸٬ ۱۳٬ ۲۱٬ ۳۴٬ ۵۵٬ ۸۹٬ ۱۴۴٬ ۲۳۳٬ ۳۷۷٬ ۶۱۰٬ ۹۸۷٬ ۱۵۹۷٬ ۲۵۸۴٬ ۴۱۸۱٬ ۶۷۶۵٬ ۱۰۹۴۶٬ ۱۷۷۱۱

این اعداد به نام لئوناردو فیبوناچی ریاضیدان ایتالیایی نام گذاری شده‌است.

در دوران حیات فیبوناچی مسابقات ریاضی در اروپا بسیار مرسوم بود در یکی از همین مسابقات که در سال ۱۲۲۵ در شهر پیزا توسط امپراتور فردریک دوم برگزار شده بود مسئله زیر مطرح شد:

فرض کنیم خرگوش‌هایی وجود دارند که هر جفت (یک نر و یک ماده) از آنها که به سن ۱ ماهگی رسیده باشند به ازاء هر ماه که از زندگی‌شان سپری شود یک جفت خرگوش متولد می‌کنند که آنها هم از همین قاعده پیروی می‌کنند حال اگر فرض کنیم این خرگوشها هرگز نمی‌میرند و در آغاز یک جفت از این نوع خرگوش در اختیار داشته باشیم که به تازگی متولد شده‌اند حساب کنید پس از n ماه چند جفت از این نوع خرگوش خواهیم داشت.

فرض کنیم xn تعداد جفت خرگوش پس از n ماه باشد، میدانیم که 1  x1=و x2=1 تعداد جفت خرگوشها در ماه n+1ام برابر خواهد بود با حاصل جمع تعداد جفت خرگوشهایی که در این ماه متولد می‌شوند با تعداد جفت خرگوشهای موجود(xn).اما چون هر جفت خرگوش که از دو ماه قبل موجود بوده هم اکنون حداقل دوماه سن خواهند داشت و به سن زادو ولد رسیده‌اند تعداد جفت خرگوش های متولد شده برابر خواهد بود با xn-1، پس خواهیم داشت:

که اگر از قواعد مذکور پیروی کنیم به دنباله زیر خواهیم رسید که به دنباله فیبوناچی مشهور است.

۱, ۱, ۲, ۳, ۵, ۸, ۱۳, ۲۱, ۳۴, ۵۵, ۸۹, ۱۴۴, ۲۳۳, ۳۷۷, ۶۱۰, ۹۸۷, ۱۵۹۷, ۲۵۸۴,…

فیبوناچی با حل این مسئله از راه حل فوق دنباله حاصل را به جهان ریاضیات معرفی کرد که خواص شگفت‌انگیز و کاربردهای فراوان آن تا به امروز نه تنها نظر ریاضی‌دانان بلکه دانشمندان بسیاری از رشته‌های دیگر را به خود جلب کرده.

رابطه دنباله فیبوناچی به این شکل است:

سری فیبوناچی در جاوا

برای مثال برای به دست آوردن جمله دهم باید جمله نهم (۳۴) و جمله  هشتم (۲۱) را با هم جمع کنیم که برابر ۵۵ می‌شود(ویکیپدیا)

سری فیبوناچی در سی شارپ

برای پیاده سازی سری فیبوناچی در سی شارپ از دو روش بازگشتی و غیر بازگشتی استفاده میکنیم.

سری فیبوناچی در سی شارپ  با روش بازگشتی

برای پیاده سازی سری فیبوناجی به صورت بازگشتی ما ورودی خود را یک متغییر  int قرار میدهیم که نشان دهنده مرحله ای است که درون آن هستیم. مثلا اگر مقدار ورودی 6 بود یعنی ما عدد 6 در دنباله فیبونانچی را میخواهیم محاسبه کنیم.کد الگوریتم به صورت زیر است:

کد بالا شامل دو متد است:

  1. Fib: متد محاسبه عدد n امین عدد فیبونانچی
  2. Main: کد تست برنامه فیبونانچی

 سری فیبوناچی در سی شارپ  با روش غیر بازگشتی

در روش غیر بازگشتی ما دو متغیر تعریف میکنیم برای نگهداری دو مرحله قبل از دنباله و از آن برای محاسبه عدد بعدی دنباله فیبوناچی استفاده میکنیم. کد غیر بازگشتی فیبوناچی به صورت زیر است:

پسورد: www.codegate.ir

 

دسته : #c, حل مسائل با سی شارپ

دیدگاه بگذارید

نظر شما چیست؟

مطلع کردن شما از
avatar

wpDiscuz