گزینه های دودویی آموزش در افغانستان

اموزش فیبوناچی

تصویر بالا مربوط به شاخص کل بورس می باشد

اعداد فیبوناچی و محاسبه سریع آن

دنباله فیبوناچی از رابطه $f(n) = f(n - 1) + f(n - 2), f(اموزش فیبوناچی 0) = 1, f(1) = 1$ به دست می‌آید. عدد‌های اول این دنباله به شکل زیر است.

$$1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89$$

پیاده سازی

ساده ترین روش پیاده‌سازی روش محاسبه مستقیم است.

این روش, روش سریعی نیست. در واقع می‌توان نشان داد زمان اموزش فیبوناچی اجرای کد بالا $O(f(n))$ است. برای اینکه در کد بالا $f(i)$ یک بار محاسبه شود می‌توان از روش برنامه‌نویسی پویا استفاده کرد تا به زمان اجرای $O(n)$ رسید.

پیاده سازی سریع

ابتدا سعی کنید اموزش فیبوناچی مساله زیر را حل کنید.

مساله: به چند اموزش فیبوناچی روش می‌توان خانه‌های یک جدول $1 \times n$ را با دومینو و یک‌مینو (مربع $1 \times 1$) پوشاند؟

خانه آخر باید توسط یک یک‌مینو و یا یک دو‌مینو پوشانده شود پس اگر $f(n)$ جواب مساله باشد آنگاه $f(n) = f(n - 1) + f(n - 2), f(0) = 1, f(1) = 1$ است.

در واقع مساله بالا معادل همان دنباله فیبوناچی است. حال رابطه دیگری برای این مساله به دست می‌آوریم. فرض کنید بخواهیم $f(2n)$ را به دست آوریم. اگر جدول را به دو جدول $1 \times n$ تقسیم کنیم. یک حالت این است که این اموزش فیبوناچی دو تکه کاملا مستقل اموزش فیبوناچی از هم باشند و حالت دیگر این است که یک دومینو یک خانه از هر کدام از این دو تکه را پوشانده باشد که در آن صورت دو جدول $1 \times (n - 1)$ مستقل به دست می‌آید. بنابراین می‌توان نتیجه گرفت که

$$f(2n) = f(n) اموزش فیبوناچی \times f(n) + f(n - 1) \times f(n - 1)$$ همچنین با استدلالی مشابه می‌توان نشان داد $$f(2n + 1) = f(n + 1) \times f(n) + f(n) \times f(n - 1) = f(n) \times (f(n + 1) + f(n - 1)) = f(n) \times (f(n) + 2f(n - 1))$$ بنابراین در محاسبه فیبوناچی از روی $f(n - 1)$ و $f(n)$ می‌توان $f(2n)$ و $f(2n + 1)$ را به دست آورد. پس در با توجه به فرمول‌های بالا می‌توان $f(n)$ را با زمان اجرای $O(log n)$ محاسبه کرد.

مقالات مرتبط

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

برو به دکمه بالا