Professional Documents
Culture Documents
خوارزميات 04 PDF
خوارزميات 04 PDF
المحاضرة الرابعة
أمثلة عن الخوارزميات التعاودية:
خوارزمية القاسم المشترك الأكبر لعددين صحيحين
خوارزمية أقليدس هي دالة استدعاء ذاتي ،تستخدم لحساب القاسم المشترك األكبر لعددين صحيحين نرمز لها gcd
)gcd(x,y
end gcd
1- Start
)2- If (n=0
output = 1
else
)output = b*pow(b,n-1
3- End
2
خوارزميات نظري السنة الثانية جامعة حلب
دعاء مصري.م قسم البرمجيات المعهد التقاني للحاسوب ال
bn= 1 if n=0
bn= power(b,n/2)*power(b,n/2) if n>0 and n is even
bn= power(b,n/2)*power(b,n/2) *b if n>0 and n is even
1- Start
2- If (n=0)
output = 1
else if n is even
output = pow(b,n/2)*pow(b,n/2)
else
output = pow(b,n/2)*pow(b,n/2)*b
3- End
: مثال
2 10=2 5 * 2 5
22*22*2 22*22*2
2*2 * 2 *2 *2 2*2 * 2 *2 *2 = 2 10
3
خوارزميات نظري السنة الثانية جامعة حلب
م .دعاء مصري قسم البرمجيات المعهد التقاني للحاسوب ال
توضيح:
اول شرط تقوم به الدالة هو فحص هل المدخل (البارميتر) Nيحمل قيمة اصغر من 2فان الناتج حينها هو:
Sum = 1
و الواحد هنا هو قيمة صحيحة اليوجد فيها اي استدعاء ولكن اذا لم يتحقق هذا الشرط فان الناتج هو:
)Sum = N + Sum(N - 1
الحظ هنا ان الناتج في هذة الحالة سوف يكون المتغير Nمضاف اليه ناتج الدالة نفسها ولكن مع تمرير N-1في هذة
المرة فاذا كانت قيمة N=4فان السطر سوف يكون كالتالي:
)Sum = 4 + Sum(3
طالما الـ Nاكبر من اثنين فانه سوف يتم استدعاء الدالة بتقليل قيمة الـ Nوبالتالي فان في االخير البد وان يصل الى اقل
من اثنين وينتهي عندها االستدعاء الذاتي..
واالن عند استدعاء الدالة Sumطبعا ً هذة الدالة وظيفتها ان تجمع القيم من الواحد والى القيمة Nفاذا كانت القيمة N=5
قيمة Nهل اصغر من 2وإال فان الناتج هو:
)Sum = N + Sum(N-1
)Sum = 5 + Sum(5-1
وبالتالي:
)1 )Sum(5 = 5 + )Sum(4
)2 )Sum(4 = 4 + )Sum(3
)3 )Sum(3 = 3 + )Sum(2
)4 )Sum(2 = 2 + )Sum(1
)5 )Sum(1 = 1
4
خوارزميات نظري السنة الثانية جامعة حلب
م .دعاء مصري قسم البرمجيات المعهد التقاني للحاسوب ال
في االستدعاء االول كانت قيمة الدالة هي 5مضاف اليها الدالة نفسها ولكن بتمرير 4اي ان ناتج ) Sum(5هو 5
مضاف الى ) Sum(4والننا النعرف كم ناتج )Sum(4تقوم باستدعاء نفسها مرة اخرى الى ان نصل الى الخطوة
الخامسة وهي الخطوة الحاسمة حيث تتنج قيمة عن الدالة الن المتغير Nيساوي واحد اي اصغر من اثنين وبهذا فان
ناتج الدالة Sum(1)=1وعندئذ يتم تعويضه في الخطوة الرابعة فيتنج Sum(2)=2 +1ومنها فان ناتج Sum(2)=3
وبالتالي يمكن تعويضه في الخطوة الثالثة حيث ان Sum(3)= 3+ 3 ....وهكذا حتى نحصل على قيمة للمعادلة
Sum(5)=15وذلك بالشكل التالي:
5