شما حلکنندهی مسئلهای کارکشتهاید و به تواناییتان در رویارویی با چالشبرانگیزترین معماهای ریاضی مشهور هستید. یک شب، نامهای فوری از مخترعی به اسم 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 = ۱۰۰۰، دقیقاً یک سهگانهی فیثاغورسی وجود دارد که برای آن a + b + c = 1000 است: {200, 375, 425}.
بهصورت پیشفرض، فقط sum به تابع triplets داده میشود، اما میتواند بهصورت اختیاری minFactor و/یا maxFactor را هم دریافت کند. وقتی اینها داده میشوند، مطمئن شوید که هر یک از عاملهای سهگانه دستکم minFactor و حداکثر maxFactor باشد.
اگر این را با CLI حل میکنید، یک مورد آزمون با اعداد بزرگ وجود دارد که فعلاً نادیده گرفته شده است تا در اجراکنندهی تست ما مهلت اجرا تمام نشود.
اگر بخواهید میتوانید با حذف .skip آن را فعال کنید، فقط توجه داشته باشید که اجرای آن ممکن است کمی طول بکشد.
در Exercism ثبتنام کنید تا JavaScript را همراه با 37 مفهوم159 تمرین و مربیگری انسانی واقعی یاد بگیرید و در آن استاد شوید، همهی اینها رایگان.