عندما يتعلق الأمر بالعثور على أقرب رقم في مصفوفة ، تقدم بايثون العديد من الحلول. ومع ذلك ، فإننا غالبا ما نبحث عن طرق بسيطة وفعالة من شأنها أن تساعدنا على التعامل مع المهمة دون تعقيد لا لزوم لها. في هذه المقالة ، سنلقي نظرة على إحدى هذه الطرق البسيطة:
في بيثون ، لدينا المدمج في دقيقة () وظيفة أن يجد الحد الأدنى للقيمة في مجموعة. باستخدام هذه الوظيفة ، يمكننا حل مشكلتنا على النحو التالي: لكل عنصر من عناصر المصفوفة ، نحسب الفرق بينه وبين الرقم المطلوب ، ونحافظ على الحد الأدنى لقيمة الفرق. في النهاية ، عندما نتصفح جميع عناصر المصفوفة ، فإن الحد الأدنى للقيمة الموجودة سيكون أقرب رقم.
إذا كنا بحاجة إلى العثور على أقرب رقم في المصفوفة عدة مرات ، ثم لتحسين الأداء ، يمكننا فرز المصفوفة قبل البحث. نظرا لأن المصفوفة المصنفة لها بنية مرتبة ، يمكننا استخدام البحث الثنائي لتسريع العملية.
- ما هو صفيف في بيثون?
- لماذا أحتاج إلى العثور على أقرب رقم في المصفوفة?
- طريقة سهلة للعثور على أقرب رقم في صفيف
- مثال على تنفيذ خوارزمية البحث
- سؤال وجواب
- كيف دقيقة () وظيفة العمل مع وظيفة مجهولة في هذه الحالة?
- هل من الممكن استخدام هذه الطريقة للعثور على أقرب رقم في مجموعة من السلاسل?
- ماذا ستكون النتيجة إذا كان هناك عدة أرقام في المصفوفة بنفس القيمة بالقرب من الرقم المحدد?
ما هو صفيف في بيثون?
المصفوفة في لغة برمجة بايثون هي مجموعة مرتبة من العناصر التي يمكن أن تحتوي على قيم لأنواع بيانات مختلفة. على عكس لغات البرمجة الأخرى ، فإن المصفوفات في بايثون ليست نوع بيانات مدمج ، ولكن يمكن إنشاؤها واستخدامها بسهولة باستخدام هياكل بيانات مختلفة.
في بايثون ، هياكل البيانات الأكثر استخداما لإنشاء المصفوفات هي:
- قوائم-أمر مجموعات قابلة للتغيير من العناصر التي يمكن أن تكون من أنواع البيانات المختلفة.
- يتم ترتيب المجموعات مجموعات غير قابلة للتغيير من العناصر التي يمكن أن تكون من أنواع بيانات مختلفة.
- صفائف نومبي هي هياكل البيانات التي تسمح لك لتخزين ومعالجة كميات كبيرة من البيانات الرقمية عالية الأداء.
لإنشاء مصفوفة في بايثون ، يتم استخدام الإنشاءات النحوية التالية:
- .
- .
- .
يمكن أن تحتوي المصفوفات في بايثون على أي عدد من العناصر والوصول إليها باستخدام الفهارس. فهرسة المصفوفات تبدأ من الصفر.
من المهم ملاحظة أنه على عكس المصفوفات في لغات البرمجة الأخرى ، يمكن أن تحتوي المصفوفات في بايثون على عناصر من أنواع بيانات مختلفة. على سبيل المثال ، يمكن أن تحتوي قائمة في بايثون على أرقام وسلاسل وحتى قوائم أو مجموعات أخرى.
لماذا أحتاج إلى العثور على أقرب رقم في المصفوفة?
يعد العثور على أقرب رقم في مصفوفة مهمة يمكن أن تكون مفيدة في العديد من المواقف. يسمح لك بالعثور على العنصر الأقرب إلى رقم أو قيمة معينة.
عند العثور على أقرب رقم ، يمكنك استخدامه لأغراض مختلفة ، على سبيل المثال:
- تحليل البيانات: يمكن أن يكون تحديد أقرب قيمة إلى القيمة المحددة مفيدا عند معالجة البيانات. على سبيل المثال ، إذا كان لديك مصفوفة تحتوي على نتائج قياس ، فيمكنك العثور على أقرب قيمة إلى القيمة التي تبحث عنها واستخدامها للتحليل أو المقارنة.
- تحسين الخوارزميات: يمكن أن يكون العثور على أقرب رقم مفيدا عند تحسين الخوارزميات. على سبيل المثال ، إذا كان لديك مجموعة من الأرقام التي تم فرزها ، فيمكنك استخدام البحث الثنائي للعثور على أقرب رقم لقيمة معينة بأقل عدد من المقارنات.
- تصور البيانات: يمكن أن يكون العثور على أقرب رقم مفيدا عند إنشاء رسوم بيانية أو مخططات. يمكنك العثور على أقرب قيمة إلى إحداثي أو قيمة على محور واستخدامها لعرض البيانات.
تتطلب كل هذه المواقف العثور على أقرب رقم في المصفوفة للحصول على القيمة الأكثر دقة أو ملاءمة لمهمة أو موقف معين.
طريقة سهلة للعثور على أقرب رقم في صفيف
عندما يكون لديك مجموعة من الأرقام ، من المهم جدا أحيانا العثور على الرقم الأقرب إلى قيمة معينة. هناك عدة طرق لحل هذه المشكلة ، ولكن واحدة من أبسطها وأكثرها قابلية للفهم هي استخدام حلقة لاجتياز جميع عناصر المصفوفة ومقارنتها بالرقم المستهدف.
هنا هو تنفيذ بسيط من الخوارزمية:
العثور على مواطن_أقرب_الرقم (آر ، الهدف):
الحد الأدنى = تعويم ('الوقود النووي المشع')
أقرب رقم = لا شيء
للاسطوانات في آر:
فرق = القيمة المطلقة (الأسطوانات-الهدف)
إذا كان الفرق:
مهرجان دبي السينمائي الدولي = مهرجان دبي السينمائي الدولي
أقرب رقم = رقم
العودة أقرب
يمر هذا الرمز عبر كل رقم في المصفوفة ويحسب الفرق بين الرقم الحالي والرقم المستهدف. إذا كان هذا الاختلاف أقل من القيمة الدنيا ، يتم حفظ الرقم الحالي ويصبح الفرق هو القيمة الدنيا الجديدة.
بعد المرور عبر جميع الأرقام في المصفوفة ، يتم إرجاع الرقم الأقرب إلى الرقم المستهدف.
هنا مثال على استخدام الدالة:
آر = [1, 2, 3, 4, 5]
الهدف = 3.5
أقرب رقم = العثور على أقرب رقم(آر ، الهدف)
طباعة (و " أقرب رقم إلى {الهدف} هو {أقرب رقم}")
نتيجة لتنفيذ التعليمات البرمجية ، سيكون الإخراج:
أقرب رقم إلى 3.5 هو 3
باستخدام هذه الطريقة البسيطة ، يمكنك بسهولة العثور على أقرب رقم في مصفوفة بايثون.
مثال على تنفيذ خوارزمية البحث
لنلق نظرة على مثال لتنفيذ خوارزمية للعثور على أقرب رقم في مصفوفة في بايثون.
الخطوة 1: إنشاء مجموعة من الأرقام التي سيتم البحث فيها. على سبيل المثال:
أرقام = [5, 10, 15, 20, 25]
الخطوة 2: حدد الرقم الذي سيتم البحث عن أقرب قيمة إليه. على سبيل المثال:
الهدف = 12
الخطوة 3: قم بإنشاء متغير لتخزين فهرس أقرب رقم وتحديد القيمة الأولية. على سبيل المثال:
أقرب مؤشر = 0
الخطوة 4: قم بإنشاء متغير لتخزين الفرق بين أقرب رقم والقيمة المطلوبة وتحديد القيمة الأولية. على سبيل المثال:
الفرق الأقرب = القيمة المطلقة (الأرقام المستهدفة [أقرب مؤشر])
الخطوة 5: انتقل من خلال كل عنصر من عناصر المصفوفة وحدد الفرق بين العنصر الحالي والقيمة المطلوبة. إذا كان الفرق الحالي أقل من قيمة الفرق الحالية لأقرب رقم ، فقم بتحديث قيم أقرب مؤشر وأقرب فرق. على سبيل المثال:
لأني في النطاق (لين (أرقام)):
الفرق = القيمة المطلقة (الأرقام المستهدفة [أنا])
إذا كان الفرق < أقرب الفرق:
أقرب_مؤشر = أنا
الفرق = الفرق
الخطوة 6: بعد استعراض جميع عناصر المصفوفة ، سيكون أقرب رقم في المصفوفة في أقرب فهرس. على سبيل المثال:
أقرب رقم = أرقام [أقرب مؤشر]
يمكنك الآن استخدام متغير العدد الأقرب لمزيد من المعالجة أو إخراج النتيجة.
سؤال وجواب
كيف دقيقة () وظيفة العمل مع وظيفة مجهولة في هذه الحالة?
تأخذ وظيفة مين () وسيطتين: كائن قابل للتكرار ومفتاح. في هذه الحالة ، الكائن المتكرر هو صفيف آر. المفتاح هو مجهول لامدا س: عبس(س الأسطوانات) وظيفة ، والتي تأخذ حجة واحدة س وإرجاع الفرق بين قيمة س وعدد معين الأسطوانات ، اتخذت مودولو. تطبق الدالة الدقيقة() هذه الوظيفة المجهولة على جميع عناصر المصفوفة وتعيد العنصر بأقل قيمة مستلمة. وهكذا ، نحصل على أقرب رقم إلى واحد محدد في مجموعة أر.
هل من الممكن استخدام هذه الطريقة للعثور على أقرب رقم في مجموعة من السلاسل?
لا ، ستعمل هذه الطريقة فقط مع القيم الرقمية ، لأن الوظيفة المجهولة تستخدم عامل الاختلاف ومشغل المعامل. إذا كنت بحاجة إلى العثور على أقرب صف في مجموعة من السلاسل ، تحتاج إلى استخدام نهج مختلف. على سبيل المثال ، يمكنك إنشاء وظيفة تقارن السلاسل القريبة من سلسلة معينة ، واستخدامها بدلا من وظيفة مجهولة في الدالة الدقيقة ().
ماذا ستكون النتيجة إذا كان هناك عدة أرقام في المصفوفة بنفس القيمة بالقرب من الرقم المحدد?
إذا كان هناك عدة أرقام في المصفوفة بنفس القيمة بالقرب من الرقم المحدد ، فإن الدالة الدقيقة() ترجع أول هذه الأرقام. على سبيل المثال ، في المصفوفة [1, 3, 4, 6, 8, 9, 4, 2] سيكون أقرب رقم إلى 5 هو 4 ، لأن الفرق بين 5 و 4 أقل من 5 وبقية الأرقام. إذا كنت بحاجة إلى العثور على جميع الأرقام بنفس القيمة الدنيا ، فيمكنك استخدام نهج مختلف ، على سبيل المثال ، إنشاء قائمة وإضافة أرقام مساوية للحد الأدنى لها ، بدلا من استخدام وظيفة الحد الأدنى ().