কম্পিউটার

পাইথনে কোন বর্গক্ষেত্র (একটি রঙিন ঘর সহ) দুটি সমান অংশে ভাগ করা যায় কিনা তা পরীক্ষা করুন


ধরুন, আমাদের একটি বর্গক্ষেত্র দেওয়া হয়েছে যেটির আকার n। n আকারের বর্গক্ষেত্রটি আবার n2 ছোট বর্গক্ষেত্রে বিভক্ত। ছোট বর্গক্ষেত্র একক আকারের এবং একটি বর্গক্ষেত্র একটি অনন্য রঙে রঙিন।

এখন যদি আমরা বড় বর্গক্ষেত্রটিকে দুটি সমান অংশে কাটে, তাহলে এমনভাবে কাটতে হবে যাতে কাটিং লাইনের সাথে সেই অনন্য রঙের ছোট বর্গক্ষেত্রের কোন বিন্দুর মিল না থাকে। আমাদের এই বিষয়টিও বিবেচনা করতে হবে যে নতুন কাটা দুটি টুকরা একে অপরের মিরর ইমেজ। সুতরাং, শর্ত অনুযায়ী একটি বর্গক্ষেত্র কাটা সম্ভব কিনা তা আমাদের খুঁজে বের করতে হবে। আমাদের কাছে n এর মান এবং বড় বর্গক্ষেত্রে রঙিন বর্গক্ষেত্রের অবস্থান রয়েছে।

সুতরাং, যদি ইনপুট আকার =50, colored_row_pos =25, colored_col_pos =25 এর মত হয়, তাহলে আউটপুট হবে "কাটিং সম্ভব নয়।"

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

  • মধ্য :=মাপের তল মান /2
  • যদি (মাঝামাঝি রঙিন_রো_পোস - 1-এর মতো হয় বা মাঝামাঝি রঙিন_রো_পোস - 1-এর মতো হয়) এবং (মাঝামাঝি রঙিন_কোল_পোস - 1-এর মতো হয় বা মাঝামাঝি রঙিন_col_pos - 1-এর মতো হয়) , তাহলে
    • মিথ্যে ফেরত দিন
  • অন্যথায়,
    • সত্য ফেরান

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

উদাহরণ

def solve(size, colored_row_pos, colored_col_pos) :
   middle = size // 2
   if (middle == colored_row_pos or middle == colored_row_pos - 1) and (middle ==    colored_col_pos or middle == colored_col_pos - 1) :
      print("Cutting is not possible")
   else :
      print("Cutting is possible")
size = 50
colored_row_pos, colored_col_pos = 25, 25 
solve(size, colored_row_pos, colored_col_pos)

ইনপুট

50, 25, 25

আউটপুট

Cutting is not possible

  1. পাইথনের চেসবোর্ডে একটি প্রদত্ত কোষে রানী আক্রমণ করতে পারে কিনা তা পরীক্ষা করুন

  2. চেসবোর্ডে ন্যূনতম কাটগুলি এমনভাবে করা যেতে পারে যাতে এটি পাইথনে 2 ভাগে বিভক্ত না হয়

  3. পাইথনে যে সমষ্টিগুলির জন্য একটি অ্যারেকে সমান সমষ্টির সাব্যারেতে ভাগ করা যায় তা সন্ধান করুন

  4. পাইথনে সমান যোগফল সহ তিনটি অংশে বিভাজন অ্যারে