بالنظر إلى قائمة الأعداد الصحيحة والرقم المستهدف، فإن المهمة هي العثور على الرقم في القائمة الذي هو الأقرب إلى الهدف. يمكن حل هذه المشكلة باستخدام طرق مختلفة:
إذا لم يكن ترتيب العناصر في القائمة مضمونًا، فيمكن استخدام الدالة min() مع المعلمة الرئيسية. تبحث هذه الطريقة عن الحد الأدنى للمسافة بين كل عنصر والهدف، وتعيد العنصر ذو الحد الأدنى للمسافة:
def takeClosest(myList, myNumber): return min(myList, key=lambda x: abs(x - myNumber))
إذا كان من المعروف أن القائمة تم فرزها، فيمكن تطبيق البحث الثنائي للعثور على أقرب رقم بشكل أكثر كفاءة في O(log n) time:
def takeClosest(myList, myNumber): low = 0 high = len(myList) - 1 while low
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3