الانتقال إلى المحتوى الرئيسي

تحديد وجود رقمين متطابقين في تدوين الأرقام الطبيعية في بايثون

في البرمجة ، غالبا ما يكون من الضروري التحقق من وجود خصائص أو شروط معينة بالأرقام. تتمثل إحدى هذه المهام في التحقق من وجود رقمين متطابقين في سجل الأرقام الطبيعية. على سبيل المثال ، تحتاج إلى تحديد ما إذا كان هناك رقمان متطابقان في الرقم 173582.

يمكن استخدام طرق مختلفة لحل هذه المشكلة في لغة برمجة بايثون. واحدة من أبسط الطرق وأكثرها فعالية هي تحويل رقم إلى سلسلة ثم البحث عن أحرف مكررة. للقيام بذلك ، يمكنك استخدام طريقة عدد السلاسل () ، والتي تسمح لك بحساب عدد مرات حدوث حرف معين في سلسلة.

هناك طريقة أخرى لحل هذه المشكلة وهي استخدام خوارزمية لفرز أرقام الرقم. أولا ، يتم تحويل الرقم إلى قائمة من الأرقام ، ثم يتم فرز القائمة ، وأخيرا ، يتم التحقق من وجود عنصرين متجاورين متطابقين. إذا تم العثور على هذه العناصر ، فهذا يعني أن هناك رقمين متطابقين في الرقم.

نظرا لبساطتها وكفاءتها ، غالبا ما تستخدم هذه الأساليب عند العمل مع الأرقام في لغة برمجة بايثون.

  1. ما هو كتابة عدد طبيعي في بيثون?
  2. الكشف عن وجود رقمين متطابقين باستخدام حلقة في بايثون
  3. تحديد ما إذا كان رقمان متماثلان دون استخدام حلقة في بايثون
  4. 1. باستخدام مجموعات
  5. 2. باستخدام وظيفة العد ()
  6. 3. استخدام التعبيرات العادية
  7. حل مشكلة تحديد وجود رقمين متطابقين في بايثون
  8. سؤال وجواب
  9. هل من الممكن تحديد ما إذا كان هناك رقمان متطابقان في سجل الأرقام الطبيعية باستخدام العودية في بايثون?

ما هو كتابة عدد طبيعي في بيثون?

كتابة رقم طبيعي في بايثون هي طريقة لتمثيل رقم باستخدام سلسلة من الأرقام في النظام العشري. يمثل كل رقم حرفا منفصلا ، ويحدد ترتيب الأرقام وزن كل منها.

في بايثون ، يمكن كتابة الأرقام الطبيعية دون أي تنسيق خاص أو محددات بين الأرقام. على سبيل المثال ، يتم تمثيل الرقم 123 ببساطة بسلسلة من الأحرف '1' و '2' و '3'.

ومع ذلك ، لتسهيل قراءة وفهم الأرقام ، قد يكون من المفيد أحيانا استخدام الفواصل بين الأرقام. في بايثون ، يمكنك استخدام حرف الشرطة السفلية لهذا الغرض. على سبيل المثال ، سيتم كتابة الرقم 1_000_000 باسم '1000000' ، ولكن يمكن أيضا أن تكون مكتوبة باسم '1_000_000' لقراءة أفضل.

كما يسمح بيثون لك لكتابة الأرقام الطبيعية في أنظمة الأرقام الأخرى ، مثل ثنائي أو سداسي عشري. للقيام بذلك ، يمكنك استخدام بادئات خاصة: '0 ب' للنظام الثنائي ، '0 س' للنظام الثماني و '0 س' للنظام السداسي العشري. على سبيل المثال ، يمكن كتابة الرقم 10 كـ '0ب1010' في ثنائي ، '0ا12' في ثماني ، أو '0كسا' في سداسي عشري.

للعمل مع كتابة الأرقام الطبيعية في بيثون ، يمكنك استخدام وظائف وأساليب مختلفة ، مثل وظيفة ستر() لتحويل رقم إلى سلسلة ، وطريقة إسديجيت() للتحقق مما إذا كانت جميع الأحرف هي رقم ، وما إلى ذلك.

الكشف عن وجود رقمين متطابقين باستخدام حلقة في بايثون

توفر بايثون طرقا مختلفة للعمل مع الأرقام والسلاسل. قد تكون إحدى هذه المهام هي تحديد وجود رقمين متطابقين في سجل الأرقام الطبيعية. يمكن استخدام الحلقات والمشغلين الشرطيين لهذا الغرض.

هنا مثال على برنامج بايثون الذي يكتشف وجود رقمين متطابقين في إدخال رقم طبيعي:

الرقم = كثافة العمليات (الإدخال ("أدخل رقما طبيعيا:"))

أرقام = []

له_مكررة = خطأ

# كسر الرقم إلى أرقام فردية وحفظها في القائمة

بينما رقم != 0:

الرقم = الرقم % 10

أرقام.إلحاق (رقم)

عدد / / = 10

# تحقق من التكرارات باستخدام حلقة

لأني في النطاق (لين (أرقام)):

ل ي في النطاق (أنا + 1 ، لين (أرقام)):

إذا أرقام [أنا] = = أرقام [ي]:

له_مكررة = صحيح

استراحة

إذا كان لديه_مكررة:

طباعة ("هناك رقمان متطابقان في سجل الأرقام.")

آخر:

طباعة ("لا يوجد رقمان متطابقان في سجل الأرقام.")

، حيث سنقوم بحفظ الأرقام الفردية من الرقم.

على سبيل المثال ، نتحقق من كل زوج من الأرقام بحثا عن التكرارات.

. في نهاية البرنامج ، نتحقق من قيمة العلم ونعرض الرسالة المقابلة للمستخدم.

وبالتالي ، يمكن استخدام البرنامج لتحديد وجود رقمين متطابقين في سجل أي رقم طبيعي.

الكشف عن وجود رقمين متطابقين دون استخدام حلقة في بايثون

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

1. باستخدام مجموعات

واحدة من أسهل الطرق لتحديد وجود رقمين متطابقين في عدد طبيعي هو استخدام مجموعات. تحتوي المجموعة في بايثون على عناصر فريدة فقط ، لذا فإن إضافة عنصر موجود إلى المجموعة لا يغير المجموعة. نستخدم هذه الميزة للتحقق من وجود أرقام متطابقة:

ديف_الأرقام_المضاعفة (عدد):

أرقام = مجموعة (شارع (عدد))

عودة لين (أرقام) < لين (شارع (عدد))

في هذا الرمز ، نقوم بتحويل رقم إلى سلسلة ، ثم نقوم بإنشاء مجموعة من الأرقام الفردية. إذا كان طول المجموعة أقل من طول السلسلة ، فهناك أرقام مكررة في الرقم وتعود الدالة إلى الحقيقة. خلاف ذلك ، تقوم الدالة بإرجاع خطأ.

2. باستخدام وظيفة العد ()

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

ديف_الأرقام_المضاعفة (عدد):

أرقام = شارع (عدد)

للأرقام في الأرقام:

إذا الأرقام.عدد (أرقام) > 1:

العودة الحقيقية

العودة كاذبة

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

3. استخدام التعبيرات العادية

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

استيراد إعادة

ديف_الأرقام_المضاعفة (عدد):

العودة منطقي (إعادة.بحث (ص " (\د).* \ 1 " ، شارع (عدد)))

في هذا الرمز ، نستخدم التعبير العادي \ د (رقم) \.* (أي عدد من المرات) \1 (إشارة إلى الرقم الأول وجدت). إذا تم العثور على أرقام مكررة في الرقم ، ترجع الدالة صحيح. خلاف ذلك ، تقوم الدالة بإرجاع خطأ.

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

حل مشكلة تحديد وجود رقمين متطابقين في بايثون

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

بادئ ذي بدء ، يمكننا تحويل رقم إلى سلسلة باستخدام دالة شارع (). بعد ذلك ، يمكننا تصفح كل رقم في السلسلة والتحقق مما إذا كان موجودا بالفعل في المجموعة. إذا كان هناك بالفعل رقم ، فيمكننا أن نستنتج أن هناك رقمين متطابقين في الرقم. إذا لم يتم تكرار أي من الأرقام ، فلا يوجد رقمان متطابقان في الرقم.

Давайте рассмотрим пример реализации данного подхода на языке Python:

def has_duplicate_digits(number):

digits_set = set()

digits_string = str(number)

for digit in digits_string:

if digit in digits_set:

return True

else:

digits_set.add(digit)

return False

# Пример использования функции

number = 12345

if has_duplicate_digits(number):

print(f"В числе {number} есть две одинаковые цифры.")

else:

print(f"В числе {number} нет двух одинаковых цифр.")

في هذا المثال ، نقوم بإنشاء وظيفة ديسديبليكاتيديجيتس ، والتي تأخذ رقما وتعود صحيحا إذا كان هناك رقمان متطابقان في هذا الرقم ، وخطأ خلاف ذلك. ثم نقوم بتحويل الرقم إلى سلسلة ونذهب من خلال كل رقم من تلك السلسلة. إذا كان الرقم موجودا بالفعل في مجموعة الرقم_مجموعة ، نعود على الفور صحيح. إذا لم يتم تضمين رقم في المجموعة ، فإننا نضيفه إلى المجموعة باستخدام وظيفة إضافة (). إذا لم نعثر ، بعد استعراض جميع الأرقام في الرقم ، على أي أرقام مكررة ، فإن الوظيفة ترجع خطأ.

وبالتالي ، فإن هذا النهج يسمح لنا بتحديد وجود رقمين متطابقين بشكل فعال في كتابة رقم طبيعي في بايثون.

سؤال وجواب

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

نعم ، من الممكن تحديد وجود رقمين متطابقين في تدوين الأرقام الطبيعية باستخدام العودية في بايثون. على سبيل المثال ، يمكنك إنشاء وظيفة العودية التي سوف تحقق كل رقم من عدد للتكرار. عند استدعاء الدالة للرقم الأول ، ستطلق على نفسها الجزء المتبقي من الرقم حتى يتم العثور على زوج من الأرقام المتطابقة أو استنفاد الرقم.