هامل عبد القادر نشر 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 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
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 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
السؤال
هامل عبد القادر
هل يمكن كتابة الكود بشكل أفضل من خوارزمية إقليدس؟
أرجو إرشادي
رابط هذا التعليق
شارك على الشبكات الإجتماعية
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.