Program Fungsi Ackermann dengan Golang

Halo semuanya! Berjumpa dengan Miniblog dari Inzaghi's Blog! Fungsi Ackermann juga berhubungan erat dengan Fungsi Hiperoperasi (Hyperoperation Function). Bagaimanakah Program Fungsi Ackermann dalam Bahasa Pemrograman seperti Go(lang)? Inilah penjelasannya!

Untuk Software-nya, Anda bisa menggunakan VS Code. Dan Anda juga bisa menggunakan Online Compiler yang ada di Internet seperti Programiz.comOnlineGDB.com, dan OneCompiler.com.


Dalam Teori Komputabilitas, Fungsi Ackermann, dinamai menurut Wilhelm Ackermann, adalah salah satu contoh paling sederhana dan paling awal ditemukan dari fungsi total yang dapat dihitung yang bukan Rekursif Primitif. Semua fungsi Rekursif Primitif bersifat total dan dapat dihitung, tetapi fungsi Ackermann mengilustrasikan bahwa tidak semua fungsi yang dapat dihitung total bersifat Rekursif Primitif.

Setelah publikasi Ackermann tentang fungsinya (yang memiliki tiga argumen bilangan bulat non-negatif), banyak penulis memodifikasinya agar sesuai dengan berbagai tujuan, sehingga saat ini "fungsi Ackermann" dapat merujuk ke salah satu dari banyak varian fungsi aslinya. Salah satu versi umum, fungsi Ackermann–Péter dua argumen didefinisikan sebagai berikut untuk bilangan bulat non-negatif m dan n :

Fungsi Ackermann A(x, y) dapat didefinisikan sebagai Bilangan Bulat x dan y dengan :


Dan inilah Fungsi Ackermann dengan Bahasa Go :

package main

import "fmt"

func ack(m, n int) int {
    if m == 0 {
        return n + 1
    } else if m > 0 && n == 0 {
        return ack(m-1, 1)
    } else if m > 0 && n > 0 {
        return ack(m-1, ack(m, n-1))
    } else {
        return ack(m, n)
    }
}

func main() {
    fmt.Println("Ackermann Function A(x, y)")
    var x, y int
    fmt.Print("Insert value of x : ")
    fmt.Scanln(&x)
    fmt.Print("Insert value of y : ")
    fmt.Scanln(&y)
    A := ack(x, y)
    fmt.Printf("A(%d, %d) = %d\n", x, y, A)
}

Input dan Output :

Ackermann Function A(x, y)
Insert value of x :  2
Insert value of y :  4
A(2, 4) = 11

Ackermann Function A(x, y)
Insert value of x :  3
Insert value of y :  4
A(3, 4) = 125


Mohon maaf apabila ada kesalahan sedikitpun pada Kode Program ini.

Terima Kasih 😀😊😘👌👍 :)

Post a Comment

Previous Post Next Post