Python
Dalam tutorial ini, Anda akan belajar membuat fungsi rekursif (fungsi yang memanggil dirinya sendiri).
Rekursi adalah proses mendefinisikan sesuatu dalam dirinya sendiri.
Contoh dunia fisik adalah menempatkan dua cermin paralel yang saling berhadapan. Objek apa pun di antaranya akan dipantulkan secara rekursif.
Dalam Python, kita tahu bahwa suatu fungsi dapat memanggil fungsi lain. Bahkan dimungkinkan bagi fungsi untuk memanggil dirinya sendiri. Jenis konstruksi ini disebut sebagai fungsi rekursif.
Gambar berikut menunjukkan cara kerja fungsi rekursif yang disebut recurse
.
Berikut adalah contoh fungsi rekursif untuk mencari faktorial suatu bilangan bulat.
Faktorial suatu bilangan adalah hasil kali semua bilangan bulat dari 1 sampai dengan bilangan tersebut. Misalnya, faktorial dari 6 (dilambangkan dengan 6!) adalah 1*2*3*4*5*6 =720 .
def factorial(x):
"""This is a recursive function
to find the factorial of an integer"""
if x == 1:
return 1
else:
return (x * factorial(x-1))
num = 3
print("The factorial of", num, "is", factorial(num))
Keluaran
The factorial of 3 is 6
Pada contoh di atas, factorial()
adalah fungsi rekursif saat memanggil dirinya sendiri.
Ketika kita memanggil fungsi ini dengan bilangan bulat positif, ia akan memanggil dirinya sendiri secara rekursif dengan mengurangi angkanya.
Setiap fungsi mengalikan angka dengan faktorial angka di bawahnya sampai sama dengan satu. Panggilan rekursif ini dapat dijelaskan dalam langkah-langkah berikut.
factorial(3) # 1st call with 3 3 * factorial(2) # 2nd call with 2 3 * 2 * factorial(1) # 3rd call with 1 3 * 2 * 1 # return from 3rd call as number=1 3 * 2 # return from 2nd call 6 # return from 1st call
Mari kita lihat gambar yang menunjukkan proses langkah demi langkah dari apa yang terjadi:
Rekursi kami berakhir ketika jumlahnya berkurang menjadi 1. Ini disebut kondisi dasar.
Setiap fungsi rekursif harus memiliki kondisi dasar yang menghentikan rekursi atau fungsi tersebut memanggil dirinya sendiri secara tak terbatas.
Interpreter Python membatasi kedalaman rekursi untuk membantu menghindari rekursi tak terbatas, yang mengakibatkan stack overflow.
Secara default, kedalaman rekursi maksimum adalah
1000
. Jika melewati batas, hasilnya RecursionError
. Mari kita lihat salah satu syaratnya.
def recursor():
recursor()
recursor()
Keluaran
Traceback (most recent call last): File "<string>", line 3, in <module> File "<string>", line 2, in a File "<string>", line 2, in a File "<string>", line 2, in a [Previous line repeated 996 more times] RecursionError: maximum recursion depth exceeded
Python
Tuple Python Dalam artikel ini, Anda akan mempelajari segala sesuatu tentang tupel Python. Lebih khusus lagi, apa itu tupel, cara membuatnya, kapan menggunakannya, dan berbagai metode yang harus Anda ketahui. Video:Daftar Python dan Tuple Tuple dalam Python mirip dengan daftar. Perbedaan antara ke
Rekursi Java Dalam tutorial ini, Anda akan belajar tentang fungsi rekursif Java, kelebihan dan kekurangannya. Dalam Java, metode yang memanggil dirinya sendiri dikenal sebagai metode rekursif. Dan, proses ini dikenal sebagai rekursi. Contoh dunia fisik adalah menempatkan dua cermin paralel yang sa
Apa itu Fungsi Utama Python? Fungsi utama Python adalah titik awal dari setiap program. Ketika program dijalankan, interpreter python menjalankan kode secara berurutan. Fungsi utama dijalankan hanya ketika dijalankan sebagai program Python. Ini tidak akan menjalankan fungsi utama jika diimpor sebag
Apa itu Fungsi di Python? Fungsi dalam Python adalah bagian dari kode yang berjalan ketika direferensikan. Ini digunakan untuk menggunakan kode di lebih dari satu tempat dalam suatu program. Disebut juga metode atau prosedur. Python menyediakan banyak fungsi bawaan seperti print(), input(), compile