বর্গমূল

বর্গমূল

সহজ

ভূমিকা

আমরা গভীর মহাকাশ অভিযানের একটি রকেট উৎক্ষেপণ করছি, আর নেভিগেশন সিস্টেম যে লক্ষ্যে অবিচল থাকে তা নিশ্চিত করার একটি উপায় আমাদের দরকার।

আমাদের হিসাবের প্রথম ধাপে আমরা একটি লক্ষ্য সংখ্যা নিই আর তার বর্গমূল (ইংরেজিতে square root) বের করি, অর্থাৎ সেই সংখ্যাটি, যাকে নিজের সাথে গুণ করলে ঠিক লক্ষ্য সংখ্যাটিই পাওয়া যায়।

যাত্রাটি হবে খুবই দীর্ঘ। ব্যাটারি যত দীর্ঘ সম্ভব টিকিয়ে রাখতে হলে আমাদের রকেটের অনবোর্ড কম্পিউটারকে খুব বিদ্যুৎ-সাশ্রয়ী বানাতে হয়েছে। দুর্ভাগ্যক্রমে, তার মানে হলো আমরা বিশেষ ধরনের গণিতের লাইব্রেরি আর ফাংশনের উপর ভরসা করতে পারি না, কারণ সেগুলো বেশি বিদ্যুৎ খরচ করে। বরং আমরা চাই নিজেরাই নিজেদের বর্গমূল গণনাটি বাস্তবায়ন করতে।

নির্দেশনা

আপনার কাজ হলো একটি নির্দিষ্ট সংখ্যার বর্গমূল নির্ণয় করা।

  • আপনার ভাষার আগে থেকে থাকা গণিত লাইব্রেরি ব্যবহার করা এড়িয়ে চলার চেষ্টা করুন।
  • ইনপুট হিসেবে আপনাকে একটি ধনাত্মক পূর্ণসংখ্যা দেওয়া হবে, অর্থাৎ ১, ২, ৩, ৪…
  • ফলাফল ধনাত্মক পূর্ণসংখ্যা হয়, এমন ক্ষেত্রগুলো সামলানোই আপনার কাছে প্রত্যাশিত।

কিছু সম্ভাব্য পদ্ধতি:

  • এমন একটি সংখ্যার জন্য লিনিয়ার বা বাইনারি সার্চ করা, যেটির বর্গ করলে ইনপুট সংখ্যাটি পাওয়া যায়।
  • নিউটন বা হেরনের পদ্ধতি ব্যবহার করে ধারাবাহিক আনুমানিক মান নির্ণয়।
  • একবারে একটি অঙ্ক বা একবারে একটি বিট হিসাব করা।

গণনার পদ্ধতি বেছে নিতে সাহায্য পাওয়ার জন্য আপনি পূর্ণসংখ্যার বর্গমূল ও বর্গমূল নির্ণয়ের পদ্ধতি নিয়ে উইকিপিডিয়ার পাতাগুলো দেখতে পারেন।

বাস্তবায়ন

এই সমস্যাটি Roc-এর বিল্ট-ইন sqrt ফাংশন ব্যবহার করে সহজেই সমাধান করা যায়।

তবে, বিল্ট-ইন বা মডিউল ব্যবহার না করেই এই অনুশীলনীটি সমাধান করার চ্যালেঞ্জটি বিবেচনা করার জন্য আমরা আপনাকে অনুরোধ করছি।

যেকোনো সংখ্যার বর্গমূল বের করার একটি গাণিতিক সূত্র থাকলেও, আমরা সমাধান হিসেবে কেবল স্বাভাবিক সংখ্যা (ধনাত্মক পূর্ণসংখ্যা) রাখার পথটি বেছে নিয়েছি।


সূত্র

wolf99লিংকটি নতুন উইন্ডো বা ট্যাবে খোলে
GitHub-এর মাধ্যমে সম্পাদনা করুন লিংকটি একটি নতুন উইন্ডো বা ট্যাবে খোলে
Roc Exercism

বর্গমূল শুরু করতে প্রস্তুত?

Exercism-এ সাইন আপ করুন, Roc ট্র্যাকের 135টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।