Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

JavaScriptでGCDを計算するためのユークリッドアルゴリズム


数学では、ユークリッドのアルゴリズムは、2つの数値の最大公約数(GCD)を計算する方法であり、最大公約数は、余りを残さずに両方を除算します。

ユークリッドの互除法は、2つの数の最大公約数は、大きい数を小さい数との差に置き換えても変化しないという原則に基づいています。

たとえば、21は252と105のGCD(252=21×12と105=21×5)であり、同じ数21は105と252 − 105=147のGCDでもあります。

この置換により2つの数値の大きい方が減少するため、このプロセスを繰り返すと、2つの数値が等しくなるまで、数値のペアが連続して小さくなります。それが発生した場合、それらは元の2つの数値のGCDです。

手順を逆にすると、GCDは、元の2つの数値の合計に、それぞれ正または負の整数を掛けたものとして表すことができます。たとえば、21 =5×105+(-2)×252です。

2つの数値を取り、ユークリッドのアルゴリズムを使用してGCD(最大公約数)を計算するJavaScript関数を作成する必要があります

以下はコードです-

const num1 = 252;
const num2 = 105;
const findGCD = (num1, num2) => {
   let a = Math.abs(num1);
   let b = Math.abs(num2);
   while (a && b && a !== b) {
      if(a > b){
         [a, b] = [a - b, b];
      }else{
         [a, b] = [a, b - a];
      };
   };
   return a || b;
};
console.log(findGCD(num1, num2));

出力

以下はコンソールでの出力です-

21

  1. Javascriptでのクラスカルのアルゴリズム

    クラスカルのアルゴリズムは、次のように機能する欲張りアルゴリズムです- 1.グラフ内のすべてのエッジのセットを作成します。 2.上記のセットは空ではなく、すべての頂点がカバーされているわけではありませんが、 このセットから最小ウェイトエッジを削除します このエッジがサイクルを形成しているか、2本の木を接続しているだけかをチェックします。サイクルを形成する場合は、このエッジを破棄します。それ以外の場合は、ツリーに追加します。 3.上記の処理が完了すると、最小スパニングツリーが作成されます。 このアルゴリズムを実装するには、さらに2つのデータ構造が必要です。 まず、エッジを並べ替えら

  2. JavaScript番号の例

    以下はJavaScriptの数字の例です- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style>    body