Rumah Kewangan Peribadi Rasa Rekursi - dummies

Rasa Rekursi - dummies

Video: RASA - Пчеловод | ПРЕМЬЕРА КЛИПА 2019 2024

Video: RASA - Пчеловод | ПРЕМЬЕРА КЛИПА 2019 2024
Anonim

Rekursi adalah perkataan yang besar dan menakutkan yang sering anda dengar tentang pengaturcaraan, terutamanya jenis pengaturcaraan yang mereka ajarkan di universiti. Walaupun ia adalah satu konsep yang mudah untuk menerangkan, ia benar-benar pemikat fikiran ketika datang untuk memahami bagaimana rekursi berfungsi. Kebanyakan orang hanya menerimanya dan teruskan. Bukan disini!

Rekursi pada dasarnya adalah proses fungsi yang memanggilnya sendiri. Sebagai contoh:

void funct (int x) {funct (x);}

Dalam kod ini, anda melihat contoh yang mengerikan dari fungsi rekursif, tetapi berfungsi sebagai ilustrasi di sini: () fungsi panggilan sendiri. Itulah rekursi. Sekarang apa yang berlaku dalam contoh ini pada dasarnya adalah gelung yang tidak berkesudahan, dan, terima kasih kepada sesuatu yang teknikal atau yang disebut, stack pointe r , komputer akhirnya terhempas. Tetapi ia hanya satu ilustrasi.

Untuk rekursi untuk berfungsi, fungsi mesti mempunyai keadaan bailout, seperti gelung. Oleh itu, sama ada nilai yang diluluskan kepada fungsi rekursif atau nilai pulangannya mesti diuji. Berikut adalah contoh yang lebih baik dari fungsi rekursif:

rekursa batal (int x) {jika (x == 0) pulangan; lain {puts ("Boop!"); rekursi (- x);}}

Fungsi rekursi () menerima nilai x . Jika x sama dengan sifar, bails fungsi. Jika tidak, fungsi dipanggil semula, tetapi nilai x dikurangkan. Pengendali awalan susunan digunakan supaya nilai x dikurangkan sebelum panggilan dibuat.

Contoh rekursi () berfungsi pada dasarnya meludahkan teks Boop! beberapa kali. Jadi jika rekursi () dipanggil dengan nilai 10, anda dapat melihat teks yang dipaparkan sepuluh kali.

Bahagian gila tentang rekursi adalah bahawa fungsi terus memanggil sendiri, membungkus dirinya lebih ketat dan ketat, seolah-olah ia berada dalam lingkaran. Dalam contoh terdahulu, keadaan x == 1 akhirnya menenangkan kekacauan yang berliku-liku, semakin menarik kembali sehingga fungsi itu selesai.

Kod berikut menunjukkan program penuh menggunakan fungsi rekursi sampel ().

#include recursion void (int x); int main () {recursion (10); return (0);} void recursion (int x) {if (x == 0) return; lain {puts ("Boop!"); rekursi (- x);}}

Demonstrasi biasa rekursi adalah fungsi faktorial. faktorial adalah hasil daripada mendarabkan nilai oleh setiap integer positifnya. Sebagai contoh:

4! = 4 × 3 × 2 × 1

Hasil faktorial ini ialah 24. Komputer juga boleh membuat pengiraan ini, sama ada melaksanakan gelung atau mencipta fungsi rekursif.Berikut adalah fungsi berikut:

int factorial (int x) {jika (x == 1) pulangan (x); lain kembali (x * factorial (x-1));}

Seperti fungsi rekursif lain, fungsi faktorial () mengandungi keadaan keluar: x == 1. Jika tidak, fungsi itu dipanggil semula dengan satu kurang daripada nilai semasa x . Tetapi semua tindakan berlaku dengan nilai pulangan.

Rasa Rekursi - dummies

Pilihan Editor

Cara RSVP ke Acara di Ning - patung

Cara RSVP ke Acara di Ning - patung

Di Ning, setelah anda menemukan persidangan itu mencari atau parti yang ingin anda hadiri, anda perlu RSVP untuk acara tersebut supaya pihak penganjur boleh mendapatkan jumlah minuman, makanan dan barang yang sesuai untuk semua peserta - dan juga rakan-rakan rangkaian anda yang tahu anda akan pergi . Untuk RSVP ...

Cara Menghantar Mesej Peribadi di Ning - dummies

Cara Menghantar Mesej Peribadi di Ning - dummies

Mesej hanya dengan dua kumpulan orang: rakan anda dan Pentadbir (termasuk Pencipta Rangkaian). Mesej peribadi Ning memberi anda cara yang ideal sebagai ahli untuk berkomunikasi dengan ahli-ahli lain dalam rangkaian tanpa semua orang mengetahui tentangnya:

Pilihan Editor

Dimensi web untuk Infographics anda - dummies

Dimensi web untuk Infographics anda - dummies

Cabaran untuk menilai infographic untuk web adalah saiz reka bentuk kini sangat berubah , tiada standard untuk bercakap. "Reka bentuk responsif" yang dibawa dengan kemunculan HTML5 mengubah landskap reka bentuk web secara kekal. Tidak seperti grafik yang dicetak, di mana setiap orang yang melihatnya mengalaminya dalam saiz yang sama, ...

Pilihan Editor

Bagaimana Menganalisis Sentimen dan Kesan Penglibatan Media Sosial Anda - pemahaman

Bagaimana Menganalisis Sentimen dan Kesan Penglibatan Media Sosial Anda - pemahaman

Komuniti mempunyai tindak balas yang positif, negatif, atau neutral kepada anda dan jenama anda boleh membantu anda menentukan bagaimana untuk terus mengendalikan pendekatan penglibatan media sosial anda. Bagaimana anda mengukur pesaing dalam minda penonton dalam talian anda adalah satu lagi faktor penting untuk dinilai. Anda juga boleh memanfaatkan ...

Cara Tanya Ahli Komuniti Dalam Talian untuk Ulasan - dummies

Cara Tanya Ahli Komuniti Dalam Talian untuk Ulasan - dummies

Tidak ada yang salah dengan menjangkau para blogger, penulis, dan ahli komuniti dalam talian lain dan bertanya kepada mereka jika mereka berminat untuk menyemak jenama atau komuniti anda. Perbezaan antara penginjilan jenama dan melakukan kajian semula adalah bahawa penginjil jenama tidak mengkaji: Mereka mempromosikan, dan mereka diberi pampasan sebagai pertukaran untuk promosi mereka. Penilai, di ...

Cara Mengiklankan Syarikat Anda melalui Penajaan Blog - patung

Cara Mengiklankan Syarikat Anda melalui Penajaan Blog - patung

Untuk cara percikan untuk dilihat blog atau laman web, pertimbangkan menaja laman web ini. Penajaan untuk blog popular telah mendapat banyak perhatian dalam blogosphere. Sesetengah blogger menyeru menerima tajaan "menjual keluar," tetapi yang lain menganggapnya sebagai cara terbaik untuk mendapatkan bayaran untuk melakukan apa yang mereka suka. Penajaan cenderung kepada ...