في كثير من الأحيان ، عند العمل مع الأرقام ، يصبح من الضروري تحديد ما إذا كان هناك رقمان متطابقان في سجل عدد صحيح. للوهلة الأولى ، قد تبدو المهمة معقدة ، ولكن في الواقع هناك حل بسيط يمكن استخدامه في العديد من المواقف.
الحل البسيط هو استخدام خوارزمية تتكون من الخطوات التالية:
- تحويل رقم إلى سلسلة.
- انتقل من خلال كل رقم على التوالي باستخدام حلقة.
- تحقق مما إذا كان هذا الرقم موجودا في بقية السلسلة.
- إذا كان هناك ، فهناك رقمان متطابقان في الرقم ، وإلا لا.
يتيح لك هذا الأسلوب حل مشكلة تحديد رقمين متطابقين بسرعة وببساطة في سجل عدد صحيح. يمكن استخدامه في البرمجة ، وكذلك في المجالات الأخرى حيث توجد حاجة للعمل مع الأرقام وكتابتها.
- كيفية تحديد وجود أرقام متطابقة في سجل الأرقام:
- طريقة مؤشرين للبحث عن أرقام متطابقة:
- مثال على حل مشكلة:
- تعقيد الخوارزمية:
- مزايا حل بسيط:
- سؤال وجواب
- كيف يمكنني تحديد ما إذا كان هناك رقمان متطابقان في سجل عدد صحيح?
- ما هي الأرقام التي سيتم اعتبارها هي نفسها في سجل الأرقام?
- هل هناك طريقة لتحديد ما إذا كان هناك رقمان متطابقان في رقم دون استخدام السلاسل?
كيفية تحديد وجود أرقام متطابقة في سجل الأرقام:
لتحديد ما إذا كانت هناك أرقام متطابقة في إدخال رقم ، يمكنك استخدام الخوارزمية التالية:
- تحويل رقم إلى سلسلة.
- انتقل من خلال كل رقم من السلسلة.
- قارن الرقم الحالي ببقية الأرقام في السلسلة.
- إذا تم العثور على نفس الرقم ، فيمكن استنتاج أن هناك أرقاما مكررة.
هذه الطريقة تجعل من السهل جدا وفعالة لتحديد وجود أرقام متطابقة في إدخال رقم. ومع ذلك ، يجب ألا يغيب عن البال أن هذه الطريقة قد لا تعمل أو تعطي نتائج غير صحيحة للأرقام ذات الفاصلة العشرية أو الأرقام السالبة أو للأرقام المكتوبة بتنسيق تدوين أسي.
للحصول على تحديد أكثر دقة وعالمية لوجود أرقام متطابقة في رقم ، يمكن استخدام خوارزميات تستند إلى مجموعات أو عمليات بت تتعامل مع معالجة أرقام التنسيقات المختلفة.
طريقة مؤشرين للبحث عن أرقام متطابقة:
طريقة المؤشرين هي نهج خوارزمي يستخدم على نطاق واسع لحل المشكلات المتعلقة بالصفائف أو القوائم. في هذه الحالة ، يمكننا استخدام طريقة المؤشرين لإيجاد رقمين متطابقين في إدخال عدد صحيح.
تعمل الخوارزمية على النحو التالي:
- تحويل رقم إلى سلسلة للوصول إلى كل رقم.
- تهيئة مؤشرين: واحد يشير إلى بداية السطر ، والآخر إلى نهاية السطر.
- باستخدام حلقة ، نتحقق من كل رقم بمقارنته ببقية الأرقام في السلسلة. إذا تم العثور على رقمين متطابقين ، فإننا نعرض رسالة تفيد بوجود هذه الأرقام.
- Если цикл закончился и мы не нашли одинаковые цифры, выводим сообщение о том, что таких цифр нет.
Пример кода на языке Python:
def find_duplicate_digits(num):
num_str = str(num)
left = 0
right = len(num_str) - 1
found = False
while left < right:
if num_str[left] == num_str[right]:
found = True
break
right -= 1
if left == right:
left += 1
right = len(num_str) - 1
if found:
print("Найдены две одинаковые цифры!")
else:
طباعة ("لم يتم العثور على رقمين متطابقين.")
هذه الخوارزمية لها تعقيد زمني لـ ا (ن) ، أين ن هو عدد الأرقام في الرقم. هذا هو الحل أكثر فعالية بكثير من الذهاب من خلال جميع التوليفات الممكنة من الأرقام.
مثال على حل مشكلة:
لحل هذه المشكلة ، يمكنك استخدام الخوارزمية التالية:
- تحويل العدد الصحيح المحدد إلى سلسلة.
- كرر على كل حرف من السلسلة ، بدءا من أول واحد.
- قارن الحرف الحالي بالحرف التالي في السلسلة.
- إذا كانت الأحرف متساوية ، فاكتبها إلى متغير منفصل وأوقف التكرار.
- طباعة النتيجة-رقمين متطابقين.
ما يلي هو تنفيذ هذه الخوارزمية في بايثون:
عدد = 123455667
# تحويل رقم إلى سلسلة
عدد_الرقم = شارع (عدد)
# كرر على كل حرف من السلسلة
لأني في النطاق (لين (رقم) -1):
# مقارنة الحرف الحالي مع الحرف التالي
إذا كان الرقم [أنا] = = الرقم [أنا + 1]:
# إخراج النتيجة
طباعة (و " تم العثور على رقمين متطابقين: {رقم [أنا]}")
استراحة
نتيجة البرنامج:
تم العثور على رقمين متطابقين: 5
وبالتالي ، يتيح لك هذا الحل العثور على الزوج الأول من الأرقام المتطابقة في سجل عدد صحيح.
تعقيد الخوارزمية:
يمكن تقدير تعقيد الخوارزمية لحل مشكلة "تحديد رقمين متطابقين في سجل عدد صحيح" على أنه خطي.
الخوارزمية بسيطة وفعالة ، وتتكون من الخطوات التالية:
- تحويل رقم معين إلى سلسلة.
- التكرار من خلال جميع الأحرف في سلسلة باستخدام حلقة.
- التحقق من وجود أحرف مكررة.
يعتمد تعقيد الخوارزمية على عدد الأحرف في السلسلة ، والتي تساوي طول سجل الرقم الأصلي. وبالتالي ، فإن التعقيد هو ا (ن) ، أين ن هو عدد الأرقام في إدخال الرقم.
سيكون وقت تنفيذ الخوارزمية متناسبا مع عدد الأرقام في الرقم. هذا يعني أن وقت تنفيذ الخوارزمية يزداد خطيا مع نمو الرقم ويقتصر على عدد الأرقام الموجودة فيه.
في حل بسيط للمشكلة ، ليست هناك حاجة لاستخدام هياكل البيانات المعقدة أو الخوارزميات المتقدمة ، لذلك يبقى تعقيدها منخفضا جدا.
ومع ذلك ، ضع في اعتبارك أن هذه الخوارزمية مصممة فقط لتحديد وجود رقمين متطابقين في رقم ، ولكنها لا تسمح لك بتحديد مواقعها الدقيقة أو عدد التكرارات. إذا كانت هناك حاجة إلى مزيد من المعلومات التفصيلية حول الأرقام المكررة ، فقد تكون هناك حاجة إلى خوارزميات أكثر تعقيدا.
مزايا حل بسيط:
يقدم حل بسيط لحل مشكلة تحديد رقمين متطابقين في كتابة عدد صحيح دون استخدام خوارزميات معقدة وهياكل بيانات إضافية. بدلا من ذلك ، يعتمد على العمليات الحسابية البسيطة والمشغلين الشرطيين.
على الرغم من بساطته ، فإن هذا النهج له العديد من المزايا:
- البساطة والوضوح. يعتمد الحل على عمليات حسابية بسيطة ولا يتطلب استخدام مفاهيم معقدة. هذا يجعل الوصول إليها ومفهومة حتى بالنسبة للمبرمجين المبتدئين.
- الفعالية. يعمل الحل البسيط مع التعقيد الخطي ، مما يعني أن وقت تنفيذه يتناسب مع طول رقم الإدخال. هذا يجعل من الممكن حل المشكلة بشكل فعال في الممارسة ، حتى بالنسبة للأعداد الكبيرة.
- لا توجد تكاليف غير ضرورية. لا يتطلب الحل البسيط ذاكرة أو موارد إضافية للعمل. يتم إجراء جميع الحسابات بناء على الرقم الأصلي ولا تنشئ هياكل بيانات إضافية.
معا ، تجعل هذه المزايا حلا بسيطا جذابا وفعالا في العديد من السيناريوهات العملية. يسمح لك بتحديد وجود رقمين متطابقين بسرعة في رقم وتطبيق إجراءات أخرى مناسبة اعتمادا على النتيجة.
سؤال وجواب
كيف يمكنني تحديد ما إذا كان هناك رقمان متطابقان في سجل عدد صحيح?
لتحديد وجود رقمين متطابقين في سجل عدد صحيح ، يمكنك استخدام الخوارزمية التالية:
ما هي الأرقام التي سيتم اعتبارها هي نفسها في سجل الرقم?
في هذه المشكلة ، يتم اعتبار رقمين متماثلين إذا كان لهما نفس القيمة الرقمية.
هل هناك طريقة لتحديد ما إذا كان هناك رقمان متطابقان في رقم دون استخدام السلاسل?
نعم ، من الممكن تحديد وجود رقمين متطابقين في رقم دون تحويله إلى سلسلة.