Selesai: javascript gcd

Masalah utama dengan algoritma GCD JavaScript ialah ia boleh mengambil masa yang lama untuk mengira.

function gcd(a, b) {
    if (b == 0) {
        return a;
    } else {
        return gcd(b, a % b);
    }
}

Ini ialah fungsi rekursif untuk mengira pembahagi sepunya terbesar bagi dua nombor, menggunakan algoritma Euclid.

Jika b bersamaan dengan 0, maka GCD adalah sama dengan a. Jika tidak, GCD adalah sama dengan GCD b dan baki a dibahagikan dengan b.

Pembahagi Bersama Terbesar

Pembahagi Sepunya Terbesar (GCD) bagi dua integer ialah integer terbesar yang membahagi kedua-dua integer tanpa meninggalkan baki. Sebagai contoh, GCD bagi 12 dan 24 ialah 6.

perpustakaan matematik

Terdapat beberapa perpustakaan yang boleh membantu dengan matematik dalam JavaScript. Satu ialah Math.js, yang menyediakan beberapa fungsi dan objek matematik asas. Satu lagi ialah numeral.js, yang menyediakan set lengkap fungsi dan objek berangka.

Rekursi dalam JavaScript

Rekursi ialah binaan pengaturcaraan yang membenarkan fungsi memanggil dirinya sendiri. Dalam erti kata lain, ia membenarkan fungsi merujuk kepada dirinya sendiri dalam definisinya sendiri. Rekursi boleh digunakan untuk menyelesaikan masalah atau mencapai matlamat tertentu.

Satu penggunaan biasa rekursi adalah dalam algoritma yang menyelesaikan masalah menggunakan gelung. Sebagai contoh, jujukan Fibonacci boleh diselesaikan menggunakan algoritma rekursif. Algoritma bermula dengan mengira nombor Fibonacci buat kali pertama, dan kemudian mengira nombor Fibonacci untuk kali kedua berdasarkan hasil pengiraan pertama. Proses ini diulang sehingga sama ada urutan mencapai had yang telah ditetapkan atau sehingga ralat berlaku.

Fungsi rekursif juga boleh digunakan untuk menyelesaikan masalah yang melibatkan senarai dan tatasusunan. Sebagai contoh, katakan anda ingin mencari semua nombor genap antara 2 dan 100. Anda boleh menggunakan gelung untuk melakukan ini, tetapi ia akan mengambil sedikit masa untuk dijalankan. Sebaliknya, anda boleh menggunakan rekursi untuk mengira semua nombor genap antara 2 dan 100 menggunakan satu panggilan fungsi.

Related posts:

1 pemikiran tentang "Diselesaikan: javascript gcd"

Tinggalkan komen