কম্পিউটার

পাইথনে নিকটতম বর্গমূল অনুমান করুন


ধরুন আমাদের একটি অ-ঋণাত্মক সংখ্যা n আছে, আমাদের একটি সংখ্যা r খুঁজে বের করতে হবে যেমন r * r =n এবং আমাদের নিকটতম পূর্ণসংখ্যাতে বৃত্তাকার করতে হবে। বিল্টিন স্কয়ার-রুট ফাংশন ব্যবহার না করেই আমাদের এই সমস্যার সমাধান করতে হবে।

সুতরাং, যদি ইনপুট 1025 এর মত হয়, তাহলে আউটপুট হবে 32।

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • যদি n <=1 হয়, তাহলে
    • রিটার্ন n
  • শুরু :=1, শেষ :=n
  • শুরু করার সময় <শেষ করুন, করুন
    • মধ্য :=শুরু + শেষ/2
    • যদি মধ্য * মধ্য <=n হয়, তাহলে
      • শুরু :=মধ্য + 1
    • অন্যথায়,
      • শেষ :=মধ্য
  • রিটার্ন শুরু - 1

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

উদাহরণ

class Solution:
   def solve(self, n):
      if n <= 1:
         return n
         start, end = 1, n
         while start < end:
            mid = start + end >> 1
            if mid * mid <= n:
               start = mid + 1
            else:
               end = mid
         return start - 1
ob = Solution()
print(ob.solve(1025))

ইনপুট

1025

আউটপুট

32

  1. পাইথনে রুট থেকে পাতার পথে অপর্যাপ্ত নোড

  2. পাইথনে বাইনারি ট্রি ইনভার্ট করুন

  3. পাইথনে পাথ সাম

  4. রুট অ্যাক্সেস ছাড়া পাইথন মডিউলগুলি কীভাবে ইনস্টল করবেন?