اذهب إلى المحتوى
  • 0

كيف أحسب PGCD بلغة php

هامل عبد القادر

السؤال

هل يمكن كتابة الكود بشكل أفضل من خوارزمية إقليدس؟

أرجو إرشادي

<?php

function PGCD($A,$B){

    $d = 0;


        if ($A<$B) {

            $A = $A + $B;
            $B = $A - $B;
            $A = $A - $B;
        } 

        if ($A < 0) {

            $A = $A * (-1);

        }

       if ($B < 0){
        $B = $B * (-1);

       }

    while ($B > 0){

        $d =  ($A%$B);
        $A = $B;
        $B = $d;
    };

    return ('PGCD A and B is '. ' '. $A);


};

echo PGCD(-9348,98);

 

kader.png

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

إن القاسم المشترك الأكبر PGCD يمكن حسابه بأكثر من طريقة، وذلك حسب الخوارزمية الرياضية التي تقوم بتطبيقها، أنت في الشيفرة لديك تطبق خوارزمية اقليدس.

يوجد طريقة أخرى وهي حساب جداء العددين تقسيم القاسم المشترك الأكبر لهما.

PGCD(a, b) = a * b / GCD(a, b)

توفر PHP دالة حساب GCD، ثم نطبق الفكرة في السطر السابق

<?php
 
$a = 15;
$b = 30;

$gcd = gmp_gcd($a, $b);

echo "GCD: " . gmp_strval($gcd) . "\n";

echo "PGCD: " . ($a * $b / gmp_strval($gcd) ) . "\n";

  
?>

أي خوارزمية أخرى يتوجب عمل برهان لها، ثم تطبيقها لأنه بدون برهان لايمكن عمل خوارزيمة سليمة.

 

gccd.jpg

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...