ما در حال پرتاب یک موشک اکتشاف فضای عمیق هستیم و به راهی نیاز داریم که مطمئن شویم سیستم ناوبری روی هدف میماند.
در اولین قدم محاسبه، یک عدد هدف میگیریم و «جذر» آن را پیدا میکنیم (یعنی عددی که وقتی در خودش ضرب شود، برابر با عدد هدف میشود).
سفر بسیار طولانی خواهد بود. برای اینکه باتریها تا حد امکان دوام بیاورند، مجبور شدیم کامپیوتر داخلی موشکمان را خیلی کممصرف بسازیم. متأسفانه این یعنی نمیتوانیم به کتابخانهها و توابع پیچیدهی ریاضی تکیه کنیم، چون انرژی بیشتری مصرف میکنند. در عوض میخواهیم محاسبهی جذر خودمان را پیادهسازی کنیم.
وظیفهی شما محاسبهی «ریشهی دوم» یک عدد دادهشده است.
چند رویکرد بالقوه:
میتوانید صفحههای ویکیپدیا دربارهی ریشهی دوم صحیح و روشهای محاسبهی ریشهی دوم را ببینید؛ این صفحهها در انتخاب روش محاسبه به شما کمک میکنند.
این مسئله را میتوان بهراحتی با استفاده از تابع sqrt داخلی Roc حل کرد.
اما دوست داریم این چالش را در نظر بگیرید که این تمرین را بدون استفاده از توابع داخلی یا ماژولها حل کنید.
هرچند فرمول ریاضیای وجود دارد که جذر هر عددی را پیدا میکند، ما این راه را انتخاب کردهایم که تنها اعداد طبیعی (اعداد صحیح مثبت) را به عنوان جواب بپذیریم.