اسرار از گزینه های باینری

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

اعداد فیبوناچی

در ریاضیات، اعداد فیبوناچی که اغلب با $F_n$ نمایش داده می‌شود، دنباله‌ای نامتناهی از اعداد حسابی‌ است که در آن هر عنصر حاصل جمع دو عنصر پیشین خود است.

صورت ریاضی

$$ F_n = \begin 0 & \mbox n = 0; \\ 1 & \mbox n = 1; \\ سری فیبوناچی بازگشتی F_ + F_ & \mbox n> 1. \\ \end $$ بدین معنی که: عنصر صفرم یعنی $F_0$ برابر با صفر، عنصر اول یعنی $F_1$ برابر با یک،‌ و عنصر $n$ ام یعنی $F_n$ که $n > 1$ برابر است با مجموع عنصر $n-1$ ام و عنصر $n-2$ ام.

عناصر اولیه‌ی این دنباله عبارتند از: $$0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, . $$

محاسبه

راه حل‌ها و الگوریتم‌های زیادی برای محاسبه $n$ امین عنصر این دنباله وجود دارند. مهم‌ترین آن‌ها عبارتند از:

حل‌ با توابع بازگشتی

تحلیل پیچیدگی زمانی

با استقرای ریاضی می‌توان نشان داد که: $T(n) = O(2^n)$

حل‌ با استفاده از دو متغیر اضافی

تحلیل پیچیدگی زمانی

این الگوریتم یک حلقه از $2$ تا $n$ دارد،‌بنابراین پیچیدگی زمانی آن $O(n)$ است.

حل‌ با استفاده از ماتریس ها

اگر ماتریس $A$ و $M$ برابر باشند با: $$A = \beginF_ \\ F \end$$ و $$M = \begin0 & 1 \\ 1 & 1 \end$$

با استفاده از تعریف ریاضی اعداد فیبوناچی می‌توان نشان داد که: $$M \times A = \beginF_ \\ F \end$$

بدین ترتیب برای $0 \leq n$ داریم: $$M^n \times A = \beginF_ \\ F \end$$

پس برای به‌دست آوردن $F_n$ کافی‌ است $M^n$ را محاسبه کرده، آن را در ماتریس $A$ ضرب کنیم و عنصر واقع در ستون اول سطر اول ماتریس حاصل را بگیریم.

حل‌ با استفاده از فرمول صریح

با استفاده از توابع مولد می‌توان نشان داد: $$F_n = \frac>((\frac>)^n - (\frac>)^n)$$

یک مثال

مثال: کلاسی $12$ دانش‌آموز دارد که در صبحگاه در یک صف به ترتیب پشت سر هم می‌ایستند. مدرسه میخواهد تعدادی از این دانش‌آموزان (حداقل یک نفر)‌ را برای گروه سرود انتخاب کند که در آن هیچ دو دانش‌آموزی که در صف پشت سر هم هستند نباشند. مدرسه چند راه برای انتخاب این گروه دارد؟

سوال را برای $n$ دانش آموز حل می‌کنیم. فرض می‌کنیم جواب مساله برای $n$ دانش‌آموز برابر $s_n$ باشد. برای $n = 1$، تنها ۱ راه وجود دارد، پس $s_1 = 1$. برای $n = 2$، تنها‌ یکی از دانش‌آموزان می‌تواند در گروه سرود باشد، پس ۲ راه وجود دارد، پس $s_2 = 2$. برای $n$ های بزرگ‌تر از $2$: اگر دانش‌آموز آخر (شماره‌ی $n$)، در گروه سرود باشد، دانش آموز $n-1$ ام نمی‌تواند باشد، پس $s_$ راه وجود دارد، و اگر نباشد، $s_$ راه. بنابر‌این: $s_n = s_ + s_$. می‌توان دید که $s_n = f_$. پس جواب مساله برابر است با $f_$ یعنی $233$.

الگوریتم فیبوناچی با پایتون + بازگشتی و غیربازگشتی

الگوریتم فیبوناچی با پایتون

در این نوشته دنباله‌ی فیبوناچی را به صورت بازگشتی و غیر بازگشتی حل می کنیم؛ این تمرین با کمک زبان برنامه نویسی پایتون انجام شده است.

مشاهده ی نوشته های زیر به شما توصیه می شود:

الگوریتم فیبوناچی با پایتون

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

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

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

کد دنباله ی فیبوناچی به صورت بازگشتی با پایتون به شکل زیر است:

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

2 دیدگاه

اخه ارور می ده که

فرورفتگی ها یا indentهارو خودتون اصلاح کنید برای دستورات for و if و …
درست میشه

دیدگاهتان را بنویسید لغو پاسخ

پیشنهاد می شود این نوشته ها را نیز بخوانید

دانلود یک لیست از تصاویر با کمک فایل متنی در پایتون

مشکل CORS policy با apiها در جنگو

مشکل نخواندن اطلاعات تابع file_get_contents بعد از استفاده از CDN

فریم ورک next js چیست؟

دیگر مطالب برنامه نویسی را از دست نمی دهید

با وارد کردن ایمیل خود از مقالات، آموزش ها و مطالب ما با خبر شوید. ایمیل شما برای هیچ منظور دیگری استفاده نخواهد شد زیرا ما خود از اسپم بیزاریم.

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

فیبوناچی و انواع آن

عدد فی از سری فیبوناچی بدست می آید به این صورت که از تقسیم کردن هر عدد به عدد قبلی به عدد 1.618 میرسیم که به عدد فی معروف است .

3.عجایب عدد فی

جالب این است که در طبیعت با این همه گستردگی نظم خاصی در بسیاری عناصر میتوان یافت که یک سری از آنها با عدد فی رابطه دارند به طور مثال:

  • دانه های آفتابگردان سری فیبوناچی بازگشتی طوری رشد میکنند که حاصل تقسیم قطر هر مارپیچ به مارپیچ بعدی 1.618 میشود

  • نسبت طول وعرض خال های پروانه عدد پی هست
  • در مارپیچ های حلزون و کهکشان های مارپیچ نسبت قطر مارپیچ 1.618 هست.

  • و خیلی از موارد دیگر را در طبیعت میتوان یافت که با نسبت عدد فی وجود دارند مثل اعضای بدن انسان، مارپیچ های دی ان ای ، گیاهان و…
  1. فیبوناچی در تحلیل تکنیکال

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

در بازار سرمایه سطوح فیبوناچی سطوحی هستند که در نقش حمایت ها و مقاومت ها در مسیر قیمت وجود دارند که قیمت در میان آنها در حال حرکت هست.

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

61.8 که از تقسیم هر عدد سری فیبوناچی به عدد بعدی بدست می سری فیبوناچی بازگشتی آید.

38.2 که از تقسیم هر عدد سری فیبوناچی به دو عدد بعدی بدست می آید.

23.6 که از تقسیم هر عدد سری فیبوناچی به سه عدد بعدی بدست می آید.

161.سری فیبوناچی بازگشتی 8 که از تقسیم هر عدد سری فیبوناچی به عدد قبلی بدست می آید.

توجه بفرمایید که هر چه از اعداد بزرگتر سری فیبوناچی برای بدست آوردن سطوح قیبوناچی استفاده کنیم به اعداد دقیق تری خواهیم رسید.( از عدد سیزدهم به بعد استفاده کنید برای تحلیل ها کفایت میکند )

  1. انواع ابزار های فیبوناچی در تجلیل تکنیکال

فیبوناچی اصلاحیRET (Fibonacci Retracement)

فیبوناچی گسترشیEXT (Fibonacci Extension)

فیبوناچی انبساطیEXP (Fibonacci Expansion)

فیبوناچی پروجکشن PRO( Fibonacci Projection)

فیبوناچی باد بزن FAN(Fibonacci fan)

فیبوناچی زمانیTIME (Fibonacci time)

در یک روند صعودی، روند این طور نیست که همیشه صعودی باشد و نیاز به اصلاح در بین مسیر دارد، ما در فیبوناچی اصلاحی سطوحی را میتوانیم پیدا کنیم که در آنها این احتمال وجود دارد که اصلاح موج صعودی به پایان برسد و ادامه صعود را داشته باشیم و برعکس در سری فیبوناچی بازگشتی موج نزولی

مهمترین سطوح اطلاحی: 23.6 درصد ، 38.2 درصد ، 61.8 درصد ،78.6 درصد

سطح 50 و100 درصد جز اعداد فیبوناچی نیست ولی تحلیلگران آن سطح هم در نظر میگیرند

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

برای رسم این ابزار یک موج صعودی پیدا کرده و کف موج را به سقف موج وصل میکنیم و در موج نزولی به عکس میشود یعنی سقف را به کف وصل میکنیم.

مثال1: در نماد فولاد که شاهد واکنش به سطح فیبو 50 درصد هستیم

مثال2: نماد وغدیر

در اصلاح های بالای 100 درصد یک روند با کمک فیبو گسترشی یا اکستنشن یا بازگشتی خارجی سطوحی را پیدا میکنیم که امکان بازگشت قیمت وجود داشته باشد

در فیبو اکستنشن سطوح 127.2 ، 141.4 ، 161.8 ، 200 ، 261.8 و 423.6 حائز اهمیت است

روش ترسیم فیبوناچی گسترشی همانند فیبوناچی اصلاحی عمل میکنیم (در روند صعودی کف موج را به سقف موج وصل میکنیم) و فقط سطوح بالای 100 درصد را در نظر میگیریم

مثال: در نماد های وب واکنش را نسبت به سطح 1.618 میتوانید مشاهده کنید

این ابزار بسیار شبیه فیبوناچی پروجکشن هست و برای بدست آوردن اهداف قیمتی بعد از شکست سقف یا کف را نشان میدهد و تفائت آن با فیبو پروجکشن در ترسیم آن است که در فیبو پروجکشن از سه نقطه استفاده میکنیم ولی در فیبو انبساطی از دو نقطه کمک مگیریم

برای رسم فیبوناچی انبساطی در روند صعودی که اصلاحی داشته و ما اهداف قیمتی را میخواهیم داشته باشیم با وصل کردن کف به سقف قیمت اهداف را بدست می آوریم.

مثال: در نماد سیمرغ واکنش ها را نسبت به سطوح 1.618 و 2.618 میتوانید مشاهده مکنید.

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

برای ترسیم فیبو پروجکشن در یک روند صعودی که یک اصلاح داشته به این صورت رسم میکنیم که یک کف و بعد یک سقف و درآخر انتهای اصلاح را انتخاب میکنیم تا فیبو پروجکشن رسم گردد.

مثال: در نماد فملی فیبوباچی در سطوح 1.618 و 2.618 اهداف قیمتی را مشخص کرده که نمودار نسبت به آنها واکنش نشان داده است.

در فیبوناچی فن یکسری نقاط حمایت و مقاومتی را در طی یک روند میتوان پیدا کرد و معمولا برای تشخیص برگشت روند بسیار کارا هستند

برای رسم آن در یک روند صعودی یک کف و سقف را انتخاب میکنیم.

مثال: در نماد دماوند که کف Aرا به سقف B متصل کردیم و واکنش های نمودار قیمت را به خط ½ را شاهد هستیم.

در فیبوناچی زمانی خطوط عمودی داریم که در آن زمان ها نمودار قیمت مستعد آن هست که تغییر روند دهد.

برای ترسیم آن دو پیوت(نقاطی که در آنها روند تغییر جهت داشته) را روی نمودار مشخص کرده و با کمک آن دو پیوت فیبوناچی زمانی را ترسیم میکنیم و تفاوتی نمیکند که پیوت ها دره سری فیبوناچی بازگشتی یا قله باشند و هر چه پیوت ها اصلی تر باشند نتیجه بهتری میگیریم.

مثال: در شاخص کل بورس تهران با اتصال نقطه A به B شاهد واکنش شاخص به سطوح فیبوناچی زمانی هستیم.

مقالات مرتبط

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

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

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