أنت حلّال مسائل بارع، معروف بقدرتك على التصدي لأصعب الألغاز الرياضية. وفي إحدى الأمسيات، تصلك رسالة عاجلة من مخترع يُدعى Triangle Tinkerer، يعمل على مشروع جديد رائد. وجاء في الرسالة:
عزيزي عالم الرياضيات،
أحتاج إلى مساعدتك. أنا أصمم جهازًا يعتمد على الخصائص الفريدة لثلاثيات فيثاغورس، وهي مجموعات من ثلاثة أعداد صحيحة تحقق المعادلة a² + b² = c². سيُحدث هذا الجهاز ثورة في الملاحة، ولكن لكي يعمل، يجب أن أبرمجه بحيث يتضمن كل ثلاثية ممكنة يكون فيها مجموع a و b و c مساويًا لعدد محدد، N. سيستغرق حساب هذه الثلاثيات يدويًا سنوات، لكني سمعت أنك أكثر من أهل لهذه المهمة.
الوقت جوهر المسألة. مستقبل اختراعي، وربما حتى مستقبل الابتكار الرياضي، يعتمد على قدرتك على حل هذه المسألة.
مدفوعًا بأهمية المهمة، شرعت في البحث عن كل ثلاثيات فيثاغورس التي تحقق الشرط. قد يكون لعملك آثار بعيدة المدى، إذ يفتح إمكانيات جديدة في العلوم والهندسة. هل تستطيع أن ترقى إلى مستوى التحدي وتصنع التاريخ؟
ثلاثية فيثاغورس هي مجموعة من ثلاثة أعداد طبيعية، {a, b, c}، بحيث
a² + b² = c²
و
a < b < c
على سبيل المثال،
3² + 4² = 5².
إذا أُعطينا عددًا صحيحًا N كمدخل، فأوجد جميع ثلاثيات فيثاغورس التي يحقق فيها a + b + c = N.
على سبيل المثال، عندما N = 1000، توجد ثلاثية فيثاغورس واحدة فقط يحقق فيها a + b + c = 1000: {200, 375, 425}.
تم وسم اختبار واحد أو أكثر من اختبارات هذا التمرين بالوسم :slow، لأنها قد تستغرق وقتًا طويلًا حتى تنتهي. ولهذا السبب، لن يُشغّلها مشغّل الاختبارات الآلي على المنصة. إذا كنت تحلّ هذا التمرين مباشرةً على المنصة في محرّر الويب، فقد يكون من الأفضل أن تنزّل هذا التمرين إلى جهازك بدلًا من ذلك. سيتيح لك ذلك تشغيل جميع الاختبارات والتحقق من كفاءة حلّك.
سجّل في Exercism لتتعلّم وتتقن Elixir عبر 58 مفهومًا168 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.