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

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

متوسط

مقدمه

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

testهای کند

یک یا چند مورد از testهای این تمرین با برچسب :slow مشخص شده‌اند، چون ممکن است اجرایشان زمان زیادی ببرد. به همین دلیل، اجراکننده‌ی خودکار test آن‌ها را روی پلتفرم اجرا نمی‌کند. اگر این تمرین را مستقیم روی پلتفرم و در ویرایشگر وب حل می‌کنید، بهتر است به جای آن این تمرین را روی سیستم خودتان دانلود کنید. این کار به شما اجازه می‌دهد همه‌ی testها را اجرا کنید و کارایی راه‌حل خود را بررسی کنید.

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

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

در Exercism ثبت‌نام کنید تا Elixir را همراه با 58 مفهوم168 تمرین و مربی‌گری انسانی واقعی یاد بگیرید و در آن استاد شوید، همه‌ی این‌ها رایگان.