কম্পিউটার টিউটোরিয়াল

পাইথনে Kটি মনিটরিং স্টেশন নির্দিষ্ট পয়েন্ট মনিটর করতে পারে কিনা যাচাই করার প্রোগ্রাম


মান লেন একটি সেন্সর মডিউল আছে যা এর নিকটবর্তী পরিবেশকে r ব্যাসার্ধ পর্যন্ত মনিটর করতে পারে। মডিউলটির মনিটরিং সার্কেলের ল্যাটিস পয়েন্টে কিছু জিনিস আছে যেগুলো মনিটর করা দরকার। তাই, k সংখ্যক লো-পাওয়ারড মডিউল রাখা হয়েছে যাতে সেগুলো শুধু সেই নির্দিষ্ট পয়েন্টগুলো মনিটর করতে পারে। ব্যাসার্ধের বর্গ এবং k সংখ্যক লো-পাওয়ারড মডিউল দেওয়া থাকলে, আমাদের বের করতে হবে পয়েন্টগুলো সঠিকভাবে মনিটর করা সম্ভব কিনা। মনিটরিং সম্ভব হলে true রিটার্ন করুন, অন্যথায় false।

উদাহরণস্বরূপ, ইনপুট ব্যাসার্ধের বর্গ (j) = 4, মনিটরিং পয়েন্ট (k) = 3 হলে আউটপুট হবে False।

যদি j = 4 হয়, তবে মনিটরিং সার্কেলের পরিধিতে ৪টি পয়েন্ট থাকে: (0,2), (0,-2), (2,0), (-2,0)। তাই যদি তিনটি নতুন মনিটরিং স্টেশন বসাই, পয়েন্টগুলো পুরোপুরি মনিটর করা সম্ভব নয়।

সমাধানের ধাপসমূহ

  • square_set := 44721 পর্যন্ত বর্গ মান ধারণকারী একটি সেট

  • i := 0, res := 0

  • i < sqrt(j) থাকাকালীন লুপ চালান:

    • যদি j - i^2 square_set-এ থাকে, তবে res += 1

    • i += 1

  • res *= 4

  • যদি k >= res হয়, তবে True রিটার্ন করুন

  • অন্যথায় False রিটার্ন করুন

উদাহরণ

নিচের ইমপ্লিমেন্টেশনটি দেখুন ভালোভাবে বুঝার জন্য:

square_set = set([z ** 2 for z in range(44722)])
def solve(j, k):
    i = 0
    res = 0
    while i < (j ** 0.5):
        if j - i ** 2 in square_set:
            res += 1
        i += 1
    res *= 4
    if k >= res:
        return True
    else:
        return False

print(solve(4, 3))

ইনপুট

4, 3

আউটপুট

False
  1. পাইথনে গ্রাফ সবাই দ্বারা ট্রাভার্সেবল কিনা চেক করার প্রোগ্রাম

  2. পাইথনে সব পয়েন্ট কানেক্ট করার ন্যূনতম খরচ বের করার প্রোগ্রাম

  3. Python দিয়ে দুটি এক্সপ্রেশন ট্রি সমতুল্য কিনা চেক করার প্রোগ্রাম

  4. কতগুলো কিউব কাটা হবে সেটা বের করার প্রোগ্রাম