هامل عبد القادر نشر 6 أغسطس 2022 أرسل تقرير نشر 6 أغسطس 2022 هل يمكن كتابة الكود بشكل أفضل من خوارزمية إقليدس؟ أرجو إرشادي <?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); 1 اقتباس
0 Wael Aljamal نشر 6 أغسطس 2022 أرسل تقرير نشر 6 أغسطس 2022 إن القاسم المشترك الأكبر 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"; ?> أي خوارزمية أخرى يتوجب عمل برهان لها، ثم تطبيقها لأنه بدون برهان لايمكن عمل خوارزيمة سليمة. 1 اقتباس
السؤال
هامل عبد القادر
هل يمكن كتابة الكود بشكل أفضل من خوارزمية إقليدس؟
أرجو إرشادي
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.