Lewati ke konten utama

Subbab 9.1 Pendahuluan

Subbagian 9.1.1 Bilangan Fibonacci

Salah satu rekurensi yang paling terkenal muncul dari sebuah kisah sederhana. Misalkan seorang ilmuwan membawa sepasang kelinci yang baru lahir ke sebuah pulau terpencil. Kelinci jenis ini belum dapat berkembang biak sampai bulan ketiga kehidupannya, tetapi setelah itu menghasilkan sepasang kelinci baru setiap bulan. Jadi, pada bulan pertama dan kedua hanya ada sepasang kelinci di pulau itu, tetapi pada bulan ketiga ada dua pasang kelinci karena pasangan pertama menghasilkan sepasang anak kelinci. Pada bulan keempat, pasangan kelinci mula-mula masih ada, demikian pula sepasang anak kelinci pertama mereka, yang belum cukup dewasa untuk berkembang biak. Namun, pasangan mula-mula melahirkan sepasang kelinci lagi sehingga kini ada tiga pasang kelinci di pulau itu. Dengan mengasumsikan bahwa tidak ada predator pemangsa kelinci di pulau tersebut dan kelinci-kelinci itu memiliki rentang hidup tak terbatas, berapa pasang kelinci yang ada di pulau itu pada bulan kesepuluh?
Mari kita lihat cara memperoleh rekurensi dari kisah ini. Misalkan \(f_n\) menyatakan banyaknya pasangan kelinci di pulau itu pada bulan \(n\text{.}\) Jadi, berdasarkan uraian di atas, \(f_1 = 1\text{,}\) \(f_2 = 1\text{,}\) \(f_3=2\text{,}\) dan \(f_4=3\text{.}\) Bagaimana kita menghitung \(f_n\text{?}\) Pada bulan \(n^\text{th}\text{,}\) kita memiliki semua pasangan kelinci yang sudah ada pada bulan sebelumnya, yaitu \(f_{n-1}\text{;}\) namun, sebagian pasangan kelinci itu juga berkembang biak pada bulan ini. Hanya pasangan yang lahir sebelum bulan sebelumnya yang dapat berkembang biak pada bulan \(n\text{,}\) sehingga ada \(f_{n-2}\) pasangan kelinci yang dapat berkembang biak, dan masing-masing menghasilkan sepasang kelinci baru. Dengan demikian, banyaknya pasangan kelinci pada bulan \(n\) adalah \(f_n = f_{n-1} + f_{n-2}\) untuk \(n\geq 3\text{,}\) dengan \(f_1=f_2=1\text{.}\) Barisan bilangan \(\{f_n\colon n\geq 0\}\) (kita menetapkan \(f_0=0\text{,}\) yang memenuhi rekurensi tersebut) dikenal sebagai barisan Fibonacci dan dinamai menurut Leonardo dari Pisa, yang lebih dikenal sebagai Fibonacci, seorang matematikawan Italia yang hidup sekitar tahun 1170 hingga sekitar tahun 1250. Suku-suku \(f_0,f_1,\dots,f_{20}\) dari barisan Fibonacci adalah
\begin{equation*} 0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987, 1597,2584,4181,6765. \end{equation*}
Jadi, jawaban atas pertanyaan kita tentang banyaknya pasangan kelinci di pulau itu pada bulan kesepuluh adalah \(55\text{.}\) Nilai ini sangat mudah dihitung, tetapi bagaimana jika kita menanyakan nilai \(f_{1000}\) dalam barisan Fibonacci? Dapatkah kita menentukan apakah pertidaksamaan berikut benar atau salah—tanpa benar-benar menghitung \(f_{1000}\text{?}\)
\begin{equation*} f_{1000} \lt 232748383849990383201823093383773932 \end{equation*}
Perhatikan barisan \(\{f_{n+1}/f_n:n\ge1\}\) yang terdiri atas rasio suku-suku berurutan dalam barisan Fibonacci. Gambar 9.1 menampilkan rasio tersebut untuk \(n\leq 18\text{.}\)
\begin{align*} 1/1 \amp = 1.0000000000 \amp 89/55 \amp = 1.6181818182\\ 2/1 \amp = 2.0000000000 \amp 144/89 \amp = 1.6179775281\\ 3/2 \amp = 1.5000000000 \amp 233/144 \amp = 1.6180555556\\ 5/3 \amp = 1.6666666667 \amp 377/233 \amp = 1.6180257511 \\ 8/5 \amp = 1.6000000000 \amp 610/377 \amp = 1.6180371353 \\ 13/8 \amp = 1.6250000000 \amp 987/610 \amp = 1.6180327869 \\ 21/13 \amp = 1.6153846154 \amp 1597/987 \amp = 1.6180344478 \\ 34/21 \amp = 1.6190476190 \amp 2584/1597 \amp = 1.6180338134 \\ 55/34 \amp = 1.6176470588 \amp 4181/2584 \amp = 1.6180340557 \end{align*}
Gambar 9.1. Rasio \(f_{n+1}/f_{n}\) untuk \(n\leq 18\)
Rasio-rasio tersebut tampak konvergen ke suatu bilangan. Dapatkah kita menentukan bilangan ini? Apakah bilangan ini berkaitan dengan rumus eksplisit untuk \(f_n\) (jika rumus seperti itu memang ada)?

Contoh 9.2.

Barisan Fibonacci tidak akan dipelajari sedemikian luas jika kegunaannya hanya untuk menghitung pasangan kelinci di sebuah pulau hipotetis. Berikut contoh lain yang juga menghasilkan barisan Fibonacci. Misalkan \(c_n\) menyatakan banyaknya cara menutupi papan berpetak berukuran \(2\times n\) dengan ubin berukuran \(2\times 1\text{.}\) Maka \(c_1=1\) dan \(c_2=2\text{,}\) sedangkan rekurensinya adalah \(c_{n+2} = c_{n+1}+c_n\text{.}\) Hal ini karena kolom paling kanan papan tersebut diisi oleh sebuah ubin vertikal (sehingga bagian sisanya dapat ditutupi ubin dengan \(c_{n+1}\) cara), atau dua kolom paling kanannya diisi oleh dua ubin horizontal (sehingga bagian sisanya dapat ditutupi ubin dengan \(c_n\) cara).

Subbagian 9.1.2 Rekurensi untuk Untai

Dalam Bab 3, kita beberapa kali melihat cara memperoleh rekurensi yang memberikan banyaknya untai biner atau terner dengan panjang \(n\) ketika kita membatasi kemunculan pola tertentu di dalamnya. Mari kita ingat kembali beberapa jenis pertanyaan itu agar kita memperoleh lebih banyak rekurensi untuk dibahas.

Contoh 9.3.

Misalkan \(a_{n}\) menyatakan banyaknya untai biner dengan panjang \(n\) yang tidak memuat dua karakter \(1\) berturut-turut. Jelas, \(a_1=2\) karena kedua untai biner dengan panjang \(1\) sama-sama “baik”. Selain itu, \(a_2=3\) karena hanya satu dari empat untai biner dengan panjang \(2\) yang “buruk”, yaitu \((1,1)\text{.}\) Selanjutnya, \(a_3= 5\) karena dari \(8\) untai biner dengan panjang \(3\text{,}\) ketiga untai berikut adalah “buruk”:
\begin{equation*} (1,1,0), (0,1,1), (1,1,1). \end{equation*}
Secara umum, mudah dilihat bahwa barisan ini memenuhi rekurensi \(a_{n+2} = a_{n+1}+a_n\text{,}\) sebab kita dapat mempartisi himpunan semua untai “baik” menjadi dua himpunan: untai yang berakhir dengan \(0\) dan untai yang berakhir dengan \(1\text{.}\) Jika bit terakhir adalah \(0\text{,}\) maka pada \(n+1\) posisi pertama kita dapat menempatkan sembarang untai “baik” dengan panjang \(n+1\text{.}\) Namun, jika bit terakhir adalah \(1\text{,}\) bit sebelumnya harus \(0\text{,}\) dan pada \(n\) posisi pertama kita dapat menempatkan sembarang untai “baik” dengan panjang \(n\text{.}\)
Akibatnya, barisan ini tidak lain adalah barisan Fibonacci, tetapi digeser sebanyak \(1\) posisi; yaitu, \(a_{n} = f_{n+1}\text{.}\)

Contoh 9.4.

Misalkan \(t_n\) menyatakan banyaknya untai terner yang tidak pernah memuat subuntai \((2,0)\) pada dua posisi berurutan. Kini \(t_1=3\) dan \(t_2=8\) karena dari \(9\) untai terner dengan panjang \(2\text{,}\) tepat satu yang “buruk”. Sekarang, tinjau himpunan semua untai baik yang dikelompokkan menurut karakter terakhirnya. Jika karakter ini adalah \(2\) atau \(1\text{,}\) maka \(n+1\) karakter sebelumnya dapat berupa sembarang untai “baik” dengan panjang \(n+1\text{.}\) Namun, jika karakter terakhir adalah \(0\text{,}\) maka \(n+1\) karakter pertama membentuk untai baik dengan panjang  \(n+1\) yang tidak berakhir dengan \(2\text{.}\) Banyaknya untai semacam itu ialah \(t_{n+1} - t_n\text{.}\) Dengan demikian, rekurensinya adalah \(t_{n+2} = 3t_{n+1} - t_n\text{.}\) Khususnya, \(t_3 = 21\text{.}\)

Subbagian 9.1.3 Garis dan Daerah pada Bidang

Contoh berikut membawa kita kembali ke salah satu masalah yang memotivasi pembahasan dalam Bab 1. Dalam Gambar 9.5, kita menampilkan suatu susunan \(4\) garis pada bidang. Setiap pasangan garis berpotongan, dan tidak ada titik pada bidang yang terletak pada lebih dari dua garis. Garis-garis ini membentuk \(11\) daerah.
dijelaskan secara terperinci setelah gambar
Empat garis digambar pada bidang sehingga setiap pasangan garis berpotongan dan tidak ada tiga garis yang berpotongan di satu titik. Pada salah satu garis, tiga titik potong dengan tiga garis lainnya ditandai dengan noktah. Daerah-daerah yang dibentuk oleh garis-garis tersebut diberi nomor dari \(1\) sampai \(11\text{.}\)
Gambar 9.5. Garis dan daerah pada bidang
Kita menanyakan berapa banyak daerah yang dibentuk oleh suatu susunan \(1000\) garis dengan batasan perpotongan yang sama. Secara umum, misalkan \(r_n\) menyatakan banyaknya daerah yang dibentuk oleh \(n\) garis. Jelas, \(r_1=2\text{,}\) \(r_2=4\text{,}\) \(r_3=7\text{,}\) dan \(r_4=11\text{.}\) Kini mudah dilihat bahwa rekurensinya adalah \(r_{n+1} = r_n+n+1\text{.}\) Untuk melihatnya, pilih salah satu dari \(n+1\) garis secara sembarang dan sebut garis itu \(l\text{.}\) Garis \(l\) berpotongan dengan setiap garis lainnya. Karena tidak ada titik pada bidang yang terletak pada tiga garis atau lebih, titik-titik perpotongan \(l\) dengan garis-garis lainnya semuanya berbeda. Beri label titik-titik itu secara berurutan sebagai \(x_1,x_2,\dots,x_n\text{.}\) Titik-titik tersebut kemudian membagi garis \(l\) menjadi \(n+1\) bagian, dua di antaranya (yang pertama dan terakhir) tak berbatas. Setiap bagian ini membelah salah satu daerah yang dibentuk oleh \(n\) garis lainnya menjadi dua. Dengan demikian, terdapat \(r_n\) daerah yang dibentuk oleh \(n\) garis lainnya dan \(n+1\) daerah baru yang dibentuk oleh \(l\text{.}\)