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

السؤال

نشر

 دالة يمكن تمرير قيمة لها هذه القيمة عبارة مصفوفة من الاعداد الصحيحة ثم تقوم بإرجاع مجموع أكبر ثلاث اعداد بالمصفوفة. قم باستخدام التعريف التالي للدالة :

def sumMaxThree(list) :

مثال: عند استدعاء الدالة بالشكل التالي: sumMaxThree([10,21,3,8,9,11,44,62,100]) فانها تقوم بارجاع العدد 206.

Recommended Posts

  • -1
نشر

أولا يمكننا ترتيب المصفوفة ومن ثم حساب مجموع مجال محدد ضمنها، كما الشيفرة التالية:

def Max3Sum(arr):

  arr_sorted = sorted(arr)  	# [1, 2, 3, 4, 5]

  return  sum(arr_sorted[-3:])  # -3 لنجمع آخر العناصر و التي تكون قيمتها الأكبر بعد الترتيب التصاعدي

print(Max3Sum([5,2,4,3,1]))
  • نعمل نسخة مرتة من المصفوفة و نجمع آخر X عنصر (يمكن تمرير وسيط لتحديد عدد الأعداد التي نريد جمعها لتصبح الدالة ديناميكية أكثر)
def MaXSum(arr, X):

  arr_sorted = sorted(arr)  	# [1, 2, 3, 4, 5]

  return  sum(arr_sorted[-X:])  # -X لنجمع آخر العناصر و التي تكون قيمتها الأكبر بعد الترتيب التصاعدي

print(MaxXSum([5,2,4,3,1], X))

 

  • 0
نشر

أولا يجب أن نحدد أكبر ثلاثة أرقام من ضمن قائمة الأرقام المدخلة للدالة sumMaxThree ويمكن فعل ذلك بإستخدام الدالة max التي ترجع أكبر رقم من قائمة أرقام مدخلة

print(max([0,5,32,6,8,1,100]))	# Output: 100

ثم سنضيف قيمة هذا الرقم إلى متغير باسم sum_numbers ونقوم بحذف الرقم من القائمة بأستخدام التابع list.remove:

nums = [1,2,3,4,5,6,1,2,3]
nums.remove(3)
print(nums)	# Output: [1, 2, 4, 5, 6, 1, 2, 3]

وسنقوم بتكرار العملية السابقة ثلاث مرات داخل الدالة sumMaxThree وفي النهاية نقوم بإرجاع إجمالي الأرقام الثالثة (المتغير sum_numbers)

# قائمة الأرقام
numbers = [10,21,3,8,9,11,44,62,100]

def sumMaxThree(nums):
  sum_numbers = 0
  
  # نقوم بتكرار العملية التالية 3 مرات
  for _ in range(0, 3):
    # نستخرج أكبر رقم في القائمة
    largest = max(nums)
    
    # نضيف الرقم إلى المتغير sum_numbers
    sum_numbers += largest
    
    # نحذف الرقم من القائمة حتى لا يتكرر بعد ذلك
    nums.remove(largest)
  
  return sum_numbers

print(sumMaxThree(numbers))	#Output: 206

 

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...