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

العثور على أرقام بمجموع الأرقام المحدد في النطاق من 1 إلى ن

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

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

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

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

  1. خوارزميات للبحث عن أرقام بمجموع الأرقام المحدد في النطاق من 1 إلى ن
  2. 1. التكرار على الأرقام
  3. 2. توليد الأرقام
  4. 3. النهج الرياضي
  5. طريقة للعثور على الأرقام مع مجموع معين من الأرقام
  6. تنفيذ الخوارزمية للعثور على الأرقام مع المبلغ المحدد من الأرقام
  7. مثال على الخوارزمية للبحث عن أرقام بمجموع معين من الأرقام
  8. تعقيد الخوارزمية للعثور على الأرقام مع المبلغ المحدد من الأرقام
  9. تطبيق الخوارزميات للبحث عن الأرقام مع المبلغ المحدد من الأرقام
  10. سؤال وجواب
  11. كيف أجد جميع الأرقام مع مجموع الأرقام يساوي 10 في النطاق من 1 إلى 100?
  12. أي الأرقام في النطاق من 1 إلى 50 لها مجموع أرقام يساوي 5?
  13. هل من الممكن العثور على رقم بمجموع الأرقام المحدد في النطاق من 1 إلى 10?

خوارزميات للبحث عن أرقام بمجموع الأرقام المحدد في النطاق من 1 إلى ن

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

1. التكرار على الأرقام

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

فيما يلي مثال على كود بايثون:

العثور على الأرقام مع المجموع (ن ، الهدف):

النتيجة = []

للاسطوانات في النطاق (1 ، ن + 1):

أرقام = مجموع (كثافة العمليات (أرقام) لرقم في شارع (الأسطوانات))

إذا كان الرقم = = الهدف:

النتيجة.إلحاق (الأسطوانات)

نتيجة الإرجاع

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

2. توليد الأرقام

هناك طريقة أخرى لحل هذه المشكلة وهي إنشاء أرقام بالمبلغ المطلوب من الأرقام. В этом случае, мы можем использовать рекурсию для создания всех возможных комбинаций цифр с заданной суммой.

Ниже приведен пример кода на языке Python:

def generate_numbers_with_sum(curr_sum, target_sum, curr_num, result):

if curr_sum == target_sum:

result.append(curr_num)

return

if curr_sum > target_sum:

return

if curr_sum < target_sum:

for digit in range(10):

generate_numbers_with_sum(curr_sum + digit, target_sum, curr_num * 10 + digit, result)

return result

العثور على الأرقام مع المجموع (ن ، الهدف):

النتيجة = []

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

توليد أرقام_مع_مجموع (رقم ، هدف ، رقم ، نتيجة)

نتيجة الإرجاع

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

3. النهج الرياضي

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

فيما يلي مثال على كود بايثون:

العثور على الأرقام مع المجموع (ن ، الهدف):

النتيجة = []

للاسطوانات في النطاق (1 ، 10):

إذا الأسطوانات < = الهدف:

النتيجة.إلحاق (الأسطوانات)

# بعد ذلك ، نقوم بإنشاء أرقام بناء على الخصائص

# مجموع أرقام الأرقام الأخرى

نتيجة الإرجاع

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

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

طريقة للعثور على الأرقام مع مجموع معين من الأرقام

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

الخوارزمية:

  1. اضبط القيمة الأولية للرقم ك إلى 1.
  2. اضبط القيمة الأولية لمجموع الأكياس على 0.
  3. تحقق مما إذا كان مجموع أرقام الرقم ك يساوي المبلغ المحدد:
    • إذا كان مجموع أرقام الرقم ك يساوي المبلغ المحدد ، أضف الرقم ك إلى قائمة الأرقام التي تم العثور عليها.
    • إذا كان مجموع أرقام الرقم ك لا يساوي المبلغ المحدد ، فانتقل إلى الرقم التالي.
  4. زيادة قيمة الرقم ك بواسطة 1.
  5. كرر الخطوات من 3 إلى 4 حتى الرقم ك يصل إلى القيمة ن.

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

يوجد أدناه جدول يحتوي على مثال لإيجاد أرقام بمجموع أرقام يساوي 10 في النطاق من 1 إلى 100:

العددمجموع الأرقام
هو 1910
2810
3710
4610
5510
6410
7310
8210
9110
10010

نتيجة لاستخدام طريقة القوة الغاشمة ، تم العثور على جميع الأرقام التي يساوي مجموع الأرقام 10 في النطاق من 1 إلى 100.

تنفيذ الخوارزمية للعثور على الأرقام مع المبلغ المحدد من الأرقام

للبحث عن أرقام بمجموع الأرقام المحدد في النطاق من 1 إلى ن ، يمكنك استخدام الخوارزمية التالية:

  1. تهيئة مجموعة فارغة ، على سبيل المثال ، قائمة ، لتخزين الأرقام التي تم العثور عليها.
  2. انتقل من خلال جميع الأرقام في النطاق من 1 إلى ن.
  3. لكل رقم ، تحقق من مجموع أرقامه.
  4. إذا كان مجموع الأرقام يساوي المبلغ المحدد ، أضف الرقم إلى مجموعة الأرقام التي تم العثور عليها.

نتيجة للخوارزمية ، سيتم تخزين جميع الأرقام التي تحتوي على مجموع الأرقام المحدد في النطاق من 1 إلى ن في المجموعة. يمكن عرض المجموعة أو استخدامها لمزيد من المعالجة.

مثال على تنفيذ هذه الخوارزمية في لغة برمجة بايثون:

العثور على أرقام الأرقام مع عدد الأرقام (ن ، مجموع الهدف):

أرقام = []

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

if sum(int(digit) for digit in str(i)) == target_sum:

numbers.append(i)

return numbers

n = 100

target_sum = 5

result = find_numbers_with_sum_of_digits(n, target_sum)

print(result)

В данном примере алгоритм ищет все числа с суммой цифр, равной 5, в интервале от 1 до 100. Результат работы алгоритма будет выведен на экран.

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

مثال على الخوارزمية للبحث عن أرقام بمجموع معين من الأرقام

لنفترض أنك بحاجة إلى إيجاد جميع الأرقام في النطاق من 1 إلى 1000 التي يبلغ مجموع أرقامها 10.

نستخدم خوارزمية البحث التالية:

  1. إنشاء قائمة فارغة سنقوم فيها بحفظ الأرقام التي تم العثور عليها.
  2. نذهب من خلال كل رقم في النطاق من 1 إلى 1000.
  3. قم بتحويل رقم إلى سلسلة لتسهيل العمل مع أرقامها.
  4. نقوم بإنشاء متغير نقوم فيه بتخزين مجموع الأرقام من الرقم الحالي وتهيئته مع صفر.
  5. نذهب من خلال كل رقم من الرقم ، وتلخيصها.
  6. إذا كان مجموع الأرقام هو 10 ، أضف الرقم إلى قائمة الأرقام التي تم العثور عليها.

مثال على كيفية عمل الخوارزمية:

  1. بالنسبة للرقم 27 ، يكون مجموع أرقامه 9 ، لذلك لن يتم إضافته إلى القائمة.
  2. بالنسبة للرقم 36 ، يكون مجموع أرقامه 9 ، لذلك لن يتم إضافته إلى القائمة.
  3. بالنسبة للرقم 45 ، يكون مجموع أرقامه 9 ، لذلك لن يتم إضافته إلى القائمة.
  4. بالنسبة للرقم 54 ، يكون مجموع أرقامه 9 ، لذلك لن يتم إضافته إلى القائمة.
  5. بالنسبة للرقم 63 ، يكون مجموع أرقامه 9 ، لذلك لن يتم إضافته إلى القائمة.
  6. بالنسبة للرقم 72 ، يكون مجموع أرقامه 9 ، لذلك لن يتم إضافته إلى القائمة.
  7. بالنسبة للرقم 81 ، يكون مجموع أرقامه 9 ، لذلك لن يتم إضافته إلى القائمة.
  8. بالنسبة للرقم 90 ، يكون مجموع أرقامه 9 ، لذلك لن يتم إضافته إلى القائمة.
  9. بالنسبة للرقم 109 ، يكون مجموع أرقامه 10 ، لذلك سيتم إضافته إلى القائمة.
  10. بالنسبة للرقم 118 ، يكون مجموع أرقامه 10 ، لذلك سيتم إضافته إلى القائمة.
  11. بالنسبة للرقم 127 ، يكون مجموع أرقامه 10 ، لذلك سيتم إضافته إلى القائمة.
  12. ...

بعد الاطلاع على جميع الأرقام في النطاق من 1 إلى 1000 ، ستحتوي قائمة الأرقام التي تم العثور عليها على جميع الأرقام التي يبلغ مجموع أرقامها 10.

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

تعقيد الخوارزمية للعثور على الأرقام مع المبلغ المحدد من الأرقام

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

الخيار الأول

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

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

الخيار الثاني

  1. هو تحليل خصائص الأرقام مع المبلغ المحدد من الأرقام.
  2. بناء على هذه الخصائص ، قم بإنشاء سلسلة من الأرقام التي تحتوي على مجموع محدد من الأرقام.
  3. ابحث عن جميع الأرقام من التسلسل الذي تم إنشاؤه والتي تقع في النطاق من 1 إلى ن.

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

كل من المتغيرات من الخوارزمية لها مزاياها وعيوبها ، واختيار خيار معين يعتمد على مهمة محددة وشروط التنفيذ المطلوبة.

تطبيق الخوارزميات للبحث عن الأرقام مع المبلغ المحدد من الأرقام

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

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

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

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

سؤال وجواب

كيف أجد جميع الأرقام مع مجموع الأرقام يساوي 10 في النطاق من 1 إلى 100?

للعثور على جميع الأرقام بمجموع الأرقام يساوي 10 في النطاق من 1 إلى 100 ، تحتاج إلى التكرار من خلال جميع الأرقام من 1 إلى 100 والتحقق من مجموع الأرقام. إذا كان مجموع الأرقام هو 10 ، فإن الرقم يناسب. أرقام مناسبة في هذه الحالة: 19, 28, 37, 46, 55, 64, 73, 82, 91.

أي الأرقام في النطاق من 1 إلى 50 لها مجموع أرقام يساوي 5?

يمكن العثور على الأرقام التي يساوي مجموع الأرقام 5 ، في النطاق من 1 إلى 50 ، على النحو التالي: 5, 14, 23, 32, 41, 50.

هل من الممكن العثور على رقم بمجموع الأرقام المحدد في النطاق من 1 إلى 10?

في النطاق من 1 إلى 10 ، يمكنك العثور على رقم بمجموع الأرقام المحدد ، إذا كان هذا المبلغ يساوي 1, 2, 3, 4, 5, 6, 7, 8, 9 أو 10. على سبيل المثال ، بالنسبة لمجموع الأرقام التي تساوي 3 ، فإن الرقمين 3 و 12 مناسبان.