مسیرها
/
Go
Go
/
تمرین‌ها
/
سه‌گانه‌ی فیثاغورسی
سه‌گانه‌ی فیثاغورسی

سه‌گانه‌ی فیثاغورسی

متوسط

مقدمه

شما حل‌کننده‌ی مسئله‌ای کارکشته‌اید و به توانایی‌تان در رویارویی با چالش‌برانگیزترین معماهای ریاضی مشهور هستید. یک شب، نامه‌ای فوری از مخترعی به اسم 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}.

نکات پیاده‌سازی

Range باید لیستی از همه‌ی «سه‌گانه‌های فیثاغورسی» را برگرداند که اضلاعش در بازه‌ی min تا max (با احتساب دو سر) باشد.

Sum باید لیستی از همه‌ی سه‌گانه‌های فیثاغورسی را برگرداند که مجموع a+b+c (محیط) برابر با p باشد. سه عنصر هر سه‌گانه‌ی بازگردانده‌شده باید مرتب باشند، یعنی t[0] <= t[1] <= t[2] و لیست سه‌گانه‌ها باید به ترتیب واژگانی باشد.

ویرایش از طریق GitHub این لینک در پنجره یا زبانه‌ی جدیدی باز می‌شود
Go Exercism

آماده‌اید سه‌گانه‌ی فیثاغورسی را شروع کنید؟

در Exercism ثبت‌نام کنید تا Go را همراه با 34 مفهوم165 تمرین و مربی‌گری انسانی واقعی یاد بگیرید و در آن استاد شوید، همه‌ی این‌ها رایگان.