دنباله فیبوناچی: از طبیعت تا کد 🌀🐚

دنباله فیبوناچی: از طبیعت تا کد 🌀🐚

دنباله فیبوناچی یکی از زیباترین و اسرارآمیزترین الگوهای ریاضی است که در سراسر طبیعت و هنر دیده می‌شود. این دنباله ساده، کاربردهای شگفت‌انگیزی در علوم مختلف دارد.

تاریخچه و کشف 🔍

دنباله فیبوناچی اولین بار در سال 1202 توسط لئوناردو فیبوناچی ریاضیدان ایتالیایی معرفی شد. او این دنباله را هنگام مطالعه رشد جمعیت خرگوش‌ها کشف کرد!

تعریف ریاضی 📐

دنباله فیبوناچی به این صورت تعریف می‌شود:

  • F(0) = 0

  • F(1) = 1

  • F(n) = F(n-1) + F(n-2) برای n ≥ 2

کاربردهای شگفت‌انگیز 💫

  1. طبیعت: آرایش برگ‌ها، مارپیچ صدف‌ها، گل‌آرایی گل‌ها

  2. هنر و معماری: نسبت طلایی در آثار هنری و ساختمان‌های تاریخی

  3. بازارهای مالی: تحلیل تکنیکال و پیش‌بینی روندها

  4. علوم کامپیوتر: الگوریتم‌های بهینه‌سازی و گرافیک کامپیوتری

پیاده‌سازی در پایتون 🐍

روش بازگشتی (Recursive)


def fibonacci_recursive(n):
    if n <= 1:
        return n
    return fibonacci_recursive(n-1) + fibonacci_recursive(n-2)

روش پویا (Dynamic Programming)


def fibonacci_dp(n):
    fib = [0, 1]
    for i in range(2, n+1):
        fib.append(fib[i-1] + fib[i-2])
    return fib[n]

روش ماتریسی (Matrix - سریع‌ترین روش)


def fibonacci_matrix(n):
    def multiply(a, b):
        return [
            [a[0][0]*b[0][0] + a[0][1]*b[1][0],
             a[0][0]*b[0][1] + a[0][1]*b[1][1]],
            [a[1][0]*b[0][0] + a[1][1]*b[1][0],
             a[1][0]*b[0][1] + a[1][1]*b[1][1]]
        ]
    
    def matrix_pow(mat, power):
        result = [[1, 0], [0, 1]]
        while power > 0:
            if power % 2 == 1:
                result = multiply(result, mat)
            mat = multiply(mat, mat)
            power //= 2
        return result
    
    if n == 0:
        return 0
    mat = [[1, 1], [1, 0]]
    return matrix_pow(mat, n-1)[0][0]

مقایسه روش‌ها ⚖️

روش پیچیدگی زمانی مناسب برای
بازگشتی O(2^n) آموزش مفاهیم
برنامه‌نویسی پویا O(n) موارد عمومی
ماتریسی O(log n) محاسبات بزرگ

نسبت طلایی 🌟

نسبت دو عدد متوالی فیبوناچی به عدد طلایی (1.618) نزدیک می‌شود:


phi = (1 + 5**0.5) / 2  # ≈1.618033988749895

کاربرد عملی: تولید مثل خرگوش‌ها 🐇


def rabbit_population(months):
    a, b = 0, 1
    for _ in range(months):
        a, b = b, a + b
    return a

print(f"جمعیت پس از 12 ماه: {rabbit_population(12)} جفت")

نتیجه‌گیری 🎯

دنباله فیبوناچی پلی زیبا بین ریاضیات، طبیعت و فناوری است. درک این دنباله نه تنها از نظر علمی ارزشمند است، بلکه دیدگاه ما را نسبت به جهان اطراف تغییر می‌دهد.

آیا می‌دانستید؟ نسبت طلایی فیبوناچی در بدن انسان (مثل نسبت قد به ناف) نیز دیده می‌شود!

Avatar

نویسنده

سیدهادی موسوی

تعداد لایک‌ها: 4

Tags: #تئوری #برنامه_نویسی #مقاله

ارسال نظر

نظرات