Faktorial suatu bilangan merupakan konsep matematika yang penting. Anda dapat menggunakannya untuk melakukan permutasi dan kombinasi, menulis ekspresi eksponensial dan logaritma, dan menghitung probabilitas.

Anda menggunakannya untuk menemukan sejumlah cara berbeda untuk mendesain pengaturan tempat duduk, atau memilih kaos untuk liburan Anda ke Maladewa. Tetapi bagaimana Anda bisa menghitung faktorial suatu angka?

Apakah faktorial suatu bilangan?

Faktorial dari bilangan positif adalah produk dari semua bilangan bulat positif yang kurang dari atau sama dengan nilai bilangan itu sendiri. Angka yang diikuti dengan tanda seru (!) menunjukkan faktorial angka. Anda mewakili faktorial dari lima sebagai 5! dan menghitungnya sebagai:

5! = 5 * 4 * 3 * 2 * 1 = 120

Cara lain untuk memvisualisasikannya adalah:

5! = 5 * 4! dimana 4! = 4 * 3!, 3! = 3 * 2! dan seterusnya sampai Anda mendapatkan 1! = 1 * 0! yaitu 1.

Anda akan menggunakan konsep ini untuk membangun program faktorial kami menggunakan konsep populer yang disebut rekursi.

instagram viewer

Apa itu Rekursi?

Rekursi adalah proses di mana suatu fungsi memanggil dirinya sendiri. Salah satu keuntungan utama dari proses ini adalah memecah masalah yang lebih besar menjadi bagian-bagian yang lebih kecil. Ini membuat masalah lebih mudah dipecahkan.

Anda dapat menggunakan rekursi untuk memecahkan masalah yang sesuai dalam tiga langkah mudah:

  1. Temukan kasus dasar: Jika suatu fungsi selalu memanggil dirinya sendiri, prosesnya tidak terbatas. Untuk mencegah hal ini terjadi, tentukan kasus dasar yang menjadi titik pemberhentian logis untuk fungsi Anda. Misalnya, dalam program faktorial, hentikan perhitungan di nol. Ini menjadi kasus dasar untuk masalah tersebut.
  2. Temukan hubungan antara masalah dan submasalah: Memecah masalah yang lebih besar menjadi submasalah. Misalnya, soal mencari faktorial dari lima. Asumsikan Anda memiliki jawaban faktorial empat, yaitu 24. Bagaimana Anda mendapatkan faktorial lima menggunakan 24? Dengan mengalikan lima dirinya ke dalamnya. Ini adalah hubungan antara masalah dan submasalah.
  3. Generalisasikan relasi yang ditemukan pada Langkah 2: Sekarang setelah Anda memiliki relasinya, umumkan dalam bentuk n. Jadi, faktorial dari bilangan n adalah perkalian dari n dan faktorial dari n-1.

Anda dapat menggunakan konsep ini untuk tentukan jumlah n bilangan asli, hitung GCD, LCM, deret Fibonacci, dan periksa bilangan prima.

Kode Pseudo untuk Fungsi Faktorial Menggunakan Rekursi

Ini bagaimana Anda menggunakan rekursi dan tulis kode semu untuk membangun program Anda dalam bahasa apa pun. Dengan bahasa yang berbeda, sintaks dan eksekusi berubah tetapi logikanya tetap utuh.

fungsiFakta(N)
Jika n == 0 Kemudian // kasus dasar
Kembali1
Kembali n * Fakta Panggilan (n - 1) // hubungan umum

Program Faktorial dalam C

C adalah bahasa pemrograman tingkat tinggi pertama yang tidak bergantung pada platform. Ini memiliki sintaks yang ketat, peka terhadap huruf besar-kecil, dan mengeksekusi kode dengan kecepatan tercepat. Ini adalah bahasa pemrograman prosedural dan karenanya Anda mendeklarasikan fungsi apa pun di atas utama fungsi. Inilah cara Anda membangun program faktorial menggunakan rekursi dalam bahasa C:

Anda dapat menemukan seluruh kode sumber program faktorial menggunakan rekursi di C, Java, dan Python di sini repositori GitHub.

  1. Impor file header output input standar untuk menampilkan output ke layar.
    #termasuk <stdio.h>
  2. Tentukan fungsi fakta dan ambil bilangan bulat N sebagai argumen.
    intfakta(int N){
  3. Tulis kasus dasar dari fungsi menggunakan jika pernyataan dan periksa persamaannya menggunakan ==. Jika n sama dengan nol, kembalikan satu.
     jika (n == 0)
    kembali1;
  4. Tulis persamaan umum dan kembalikan produk dari N dengan pemanggilan fungsi dari subproblem n-1.
    kembali n * fakta (n - 1);
    }
  5. Deklarasikan fungsi utama dan inisialisasi variabel bertipe integer untuk menyimpan angka yang faktorialnya ingin Anda temukan.
    intutama(){
    int jumlah = 5;
  6. Menampilkan faktor bilangan menggunakan printf() fungsi. %D adalah penentu format desimal. Gunakan setiap penentu format untuk menggantinya dengan angka yang faktorialnya ingin Anda temukan dan dapatkan hasilnya dengan memanggil fungsi.
     printf("Faktorial dari %d adalah %d", bil, fakta (bil));
    kembali0;
    }

Program Faktorial di Jawa

Java adalah bahasa pemrograman yang dikompilasi dan tidak bergantung pada platform. Anda menyimpan semua kode di dalam a kelas dan pelaksanaannya dimulai dari utama fungsi. Ini peka terhadap huruf besar-kecil dan ketat sintaks. Kodenya sedikit lebih panjang tetapi lebih cepat dibandingkan dengan Python. Inilah cara Anda membangun program faktorial menggunakan rekursi di Java:

  1. Tentukan kelas Utama.
    kelasUtama{
  2. Tentukan fungsi statis dengan tipe kembalian int yang menerima variabel n bertipe integer. Anda mendeklarasikan metode statis karena metode utama di Java juga dideklarasikan sebagai statis. Selain itu, Anda tidak dapat memanggil metode non-statis dari instance statis.
    statisintfakta(int N){
  3. Tulis kasus dasar dari fungsi menggunakan jika pernyataan dan periksa persamaannya menggunakan ==. Jika n sama dengan nol, kembalikan satu.
     jika (n == 0)
    kembali1;
  4. Tulis persamaan umum dan kembalikan produk dari N dengan pemanggilan fungsi dari subproblem n-1.
    kembali n * fakta (n - 1);
    }
  5. Deklarasikan fungsi utama di Java. Nyatakan pengubah akses sebagai publik, sehingga dapat diakses oleh semua kelas dan metode lainnya. Anda mendeklarasikan fungsi utama sebagai statis sehingga kompiler dapat memanggilnya tanpa membuat instance kelas. Jenis pengembalian adalah ruang kosong, dan menerima argumen tipe Rangkaian. Simpan nomor yang faktorialnya ingin Anda temukan.
    publikstatisruang kosongutama(String[] argumen){
    int jumlah = 5;
  6. Menggunakan println() metode, contoh dari PrintStream kelas, didefinisikan dalam Sistem class untuk menampilkan faktor dari bilangan tersebut.
     Sistem.keluar.println("Faktorial dari " + angka + " adalah " + fakta (angka));
    }
    }

Program Faktorial dengan Python

Menulis kode dengan Python sangat mudah dan menyenangkan. Karena ini adalah bahasa independen platform yang ditafsirkan, Anda tidak perlu mendeklarasikan tipe data variabel. Anda juga menghindari keharusan mendeklarasikan kelas dan mengimpor pustaka untuk program sederhana semacam itu. Taman bermain siap untuk Anda memulai pengkodean.

Sintaksnya lebih mudah, dengan panjang kode yang kecil tetapi membutuhkan waktu lebih lama untuk dieksekusi daripada bahasa lain. Inilah cara Anda membangun program faktorial menggunakan rekursi dengan Python:

  1. Definisikan fakta fungsi yang diterima sebagai argumen n.
    deffakta(N):
  2. Tulis kasus dasar dari fungsi menggunakan jika pernyataan dan periksa persamaannya menggunakan ==. Jika n sama dengan nol, kembalikan satu.
     jika n == 0:
    kembali1
  3. Tulis persamaan umum dan kembalikan produk dari N dengan pemanggilan fungsi dari subproblem n-1.
    kembali n * fakta (n-1)
  4. Simpan nomor yang faktorialnya ingin Anda temukan dan tampilkan menggunakan pernyataan cetak.
    jumlah = 5;
    mencetak("Faktorial dari", nomor, "adalah", fakta (angka))

Ada Banyak Aplikasi Rekursi

Rekursi adalah cara yang efektif untuk memecahkan masalah. Ini adalah inti dari Kecerdasan Buatan dan memiliki kegunaan dunia nyata dalam permainan teka-teki seperti catur atau Sudoku.

Ini juga merupakan metode yang ampuh untuk menyortir struktur data seperti Tree atau menyortir algoritma seperti Quick sort dan Merge sort. Anda juga dapat menggunakan rekursi dalam algoritme pencarian seperti pencarian Biner, ekspresi matematika seperti deret Fibonacci, dan lainnya.