أنت حلّال مسائل بارع، معروف بقدرتك على التصدي لأصعب الألغاز الرياضية. وفي إحدى الأمسيات، تصلك رسالة عاجلة من مخترع يُدعى 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}.
يجب أن تُرجع Range مصفوفة تضم جميع ثلاثيات فيثاغورس التي تقع أضلاعها في النطاق من min إلى max شاملة الطرفين.
يجب أن تُرجع Sum مصفوفة تضم جميع ثلاثيات فيثاغورس التي يساوي فيها المجموع a+b+c (المحيط) القيمة p. ويجب أن تكون العناصر الثلاثة لكل ثلاثي مُرجَع مرتّبة بحيث t[0] <= t[1] <= t[2]، وأن تكون مصفوفة الثلاثيات مرتّبة ترتيباً معجمياً.
سجّل في Exercism لتتعلّم وتتقن Go عبر 34 مفهومًا165 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.