Mari kita lakukan latihan yang terkenal, dan ini mungkin muncul sebagai pertanyaan wawancara.
Kami akan mencoba dan menerapkan angka Fibonacci dan angka Fibonacci seperti ini.
Angka pertama adalah nol, kemudian angka kedua adalah satu, mereka selalu dimulai dengan nol satu, maka inilah yang
terjadi.
Kami menambahkan nol dengan satu sama dengan nomor berikutnya.
Kami menambahkan satu dengan satu untuk menyamai angka berikutnya, kami menambahkan satu per dua untuk mendapatkan angka berikutnya dua, tiga untuk
menambahkan angka berikutnya lima, delapan untuk menambahkan angka berikutnya.
Begitu seterusnya dan seterusnya.
Seperti yang Anda lihat, ini tumbuh secara eksponensial.
Yah, itu tumbuh sangat tinggi, sangat cepat.
Dan penomoran semacam ini sebenarnya banyak muncul di alam, tetapi ini juga merupakan masalah yang menarik
karena angka-angka ini, meskipun pada awalnya, tumbuh sangat, sangat lambat.
Mereka menjadi lebih besar dan lebih besar dan lebih besar, dan itu menjadi masalah yang benar-benar dapat memonopoli sumber daya.
Jadi inilah yang ingin saya lakukan.
Kita akan membuat fungsi.
FIB yang mengambil nomor.
Dan di sini, nomor ini akan menjadi nomor indeks Fibonacci.
Jadi, misalnya, jika itu adalah angka ke-20, seharusnya ini.
Jadi kalau mau, misalkan fib 20 disini.
Dalam hal ini, saya ingin Anda mengembalikan semua nomor ini.
Menggunakan genset, begitulah satu per satu sampai kita sampai di lokasi ini.
Sekarang, ada dua cara untuk melakukan ini yang dapat Anda lakukan dengan daftar atau kita dapat melakukannya dengan generator.
Dan Anda akan melihat bahwa dengan generator, ini jauh lebih mudah dilakukan daripada dengan daftar karena pada
akhirnya dengan daftar Anda akan kehabisan sumber daya.
Jadi yang saya ingin Anda lakukan adalah menampilkan di sini angka-angka yang Anda lihat di sini sampai 20.
Dan jika Anda mau, Anda dapat terus meningkatkan jumlah itu dan melihat apa yang terjadi.
Dan sebagai bonus, Anda dapat mencoba menerapkan ini dengan daftar juga.
Jadi itu ditampilkan dalam daftar raksasa juga.
Jeda video jika Anda ingin di sini.
Jika tidak, saya akan terus menjawabnya.
Pertama, apa yang ingin kita lakukan adalah mengatakan A akan sama dengan nol dan B sama dengan satu, jadi A dan B
akan menjadi awal dari angka.
Sekarang, di sini, kita akan menggunakan generator jangkauan.
Untuk Lupe.
Berapa kali kita akan menyediakan fungsi.
Sekarang, di sini, pertama, saya ingin menjadi sekarang atau dua sekarang memanggil apa pun B itu, yang merupakan satu dan
B menjadi apa pun nomor berikutnya.
Ingat roll dengan Fibonacci?
Kami menambahkan dua angka pertama untuk mendapatkan angka ketiga.
Jadi kita memiliki A B untuk mendapatkan nomor berikutnya, kemudian A, B untuk mendapatkan nomor berikutnya dan kemudian a B untuk mendapatkan nomor berikutnya.
Jadi hal pertama yang ingin saya lakukan adalah benar-benar menyerah dan berkata, hei, beri saya apa pun dan kemudian jeda fungsi
sampai bagian berikutnya.
Setelah itu, setelah perulangan for menuju ke bagian selanjutnya, saya akan mengatakan bahwa saya ingin A dua sama dengan B.
Dan saya ingin B sama dengan A ditambah B.
Mari kita lihat apakah itu masuk akal, saya katakan, hei, kembalikan atau hasilkan a dari daftar
ini sehingga awalnya akan menjadi nol, lalu saya ingin Anda menyamakannya dengan satu sekarang karena kita akan pindah dan kemudian saya
ingin B sama dengan satu karena A telah berubah menjadi satu dan kemudian yang sebelumnya.
Jadi B menjadi dua.
Jika kita melihat ke sini, itu sebabnya kami ingin kami memiliki A dan B di sini dan kemudian kami ingin pindah hanya satu seperti
ini.
Jadi B harus tetap satu.
Jadi sementara yang mungkin ingin kita lakukan di sini adalah untuk tidak mengubah a.
Sampai kita mampu melakukan A plus B.
Jadi bagaimana kita bisa melakukan ini?
Yah, kita hanya bisa mengatakan.
Katakanlah variabel sementara dan suhu ini akan mempertahankan apa pun a ketika kita sampai di sini, yaitu
nol, dan kemudian kita akan memodifikasi A menjadi satu dan kemudian B akan menjadi alih-alih A plus,
B akan menjadi suhu, yaitu nol.
Plus, apa pun B awalnya, yang saya tahu ini bisa membingungkan, Anda mungkin ingin berhenti sejenak di sini atau
mungkin mencetak dan melihat persis apa yang terjadi, tapi mudah-mudahan fungsi kita berfungsi sekarang.
Jika sekarang saya melakukan sesuatu seperti empat X sesuai dan memberikannya, katakanlah seratus.
Dan mari kita cetak jawabannya.
Jadi cetak.
X dan saya menjalankan ini.
Baiklah, lihat itu, saya mendapatkan semua angka Fibonacci saya, mari kita lakukan 20, seperti yang kita lihat pada contoh, jika
saya klik run.
Saya mendapatkan empat satu delapan satu.
Jadi saya 19 karena ingat, hitungan kita dimulai dari nol, jadi secara teknis di sini, jika kita mau, kita bisa melakukan 21 di
sini, klik, jalankan dan kita harus mendapatkan enam, tujuh, enam, lima, itulah yang kita dapatkan di sini.
Sangat, sangat keren, tetapi Anda dapat melihat bagaimana jumlahnya meningkat secara dramatis.
Apakah kami telah meningkat menjadi seribu sekarang, jika kami melakukan ini dalam daftar, itu akan terlihat seperti ini.
Mari kita salin di sini.
Nah, cocok dengan daftar berarti kita harus menambahkan daftar di sini.
Dan alih-alih menghasilkan, akan melakukan result dot append.
Dan kita akan menambahkan apa pun nilainya, yang merupakan nilai awal.
Dan kemudian kita akan melakukan hal yang sama yang telah kita lakukan sebelumnya, jadi alih-alih ILT, kita
sekarang hanya menambahkan daftar ini dan pada akhirnya kita kembali.
Hasil daftar sekarang, jika saya mengembalikan ini, katakanlah, fib ke dan berikan seratus dan saya klik jalankan, mari
komentari yang asli dengan generator.
Yah, kita mungkin harus mencetak ini, bukan?
Jadi mari kita cetak.
Dan klik jalankan.
Baiklah, itu daftar yang sangat besar.
Sekarang, jika kita melakukan seribu di sini.
Anda melihat bahwa itu memakan waktu yang cukup lama.
Bagaimana jika kita melakukan 10.000?
Baiklah, pasti membutuhkan waktu, dan Anda dapat melihat di sini betapa sulitnya ini bekerja.
Kamu tahu apa?
Aku akan menghentikannya.
Dan kembali ke generator kami.
Cara dan mari kita lakukan sepuluh ribu di sini, mari kita lihat bagaimana tampilan sepuluh ribu dengan generator.
Yah, itu masih bekerja keras, tapi aku tidak menyimpan semua ini dalam memori.
Kami mengambilnya satu per satu dan saya dapat menindaklanjutinya dalam kasus kami, hanya mencetaknya satu per satu.
Sekarang, ini adalah pertanyaan wawancara yang umum, saya pikir ini sebenarnya sedikit membingungkan yang tidak perlu.
Tapi itu menunjukkan kekuatan generator.
Anda mungkin harus menonton video ini beberapa kali, tetapi semoga sekarang Anda merasa sedikit
nyaman menggunakan rentang dan bagaimana kami dapat meningkatkan kinerja menggunakan generator.
Sampai jumpa di yang berikutnya.
Sampai jumpa.