কম্পিউটার

পাইথনে একজন দাবা নাইট দ্বারা লক্ষ্য অবস্থানে পৌঁছানোর ন্যূনতম পদক্ষেপগুলি খুঁজে বের করার প্রোগ্রাম


ধরুন আমাদের দুটি মান আছে r এবং c। যদি একটি দাবা নাইট একটি অসীম বড় দাবা বোর্ডের শুরুতে স্থানাঙ্কে (0, 0) স্থাপন করা হয়, তবে আমাদের অবস্থানে পৌঁছতে ন্যূনতম সংখ্যক চাল খুঁজে বের করতে হবে (r, c)। নাইট দাবা হিসাবে একই চলন্ত শৈলী অনুসরণ করবে. এটি অনুভূমিকভাবে দুটি বর্গক্ষেত্র দূরে এবং একটি বর্গক্ষেত্র উল্লম্বভাবে বা দুটি বর্গক্ষেত্র উল্লম্বভাবে এবং একটি বর্গক্ষেত্র অনুভূমিকভাবে সরে যায়৷

সুতরাং, যদি ইনপুটটি r =6, c =1 এর মত হয়, তাহলে আউটপুট হবে 3, লালটি প্রাথমিক অবস্থান, সবুজটি চূড়ান্ত এবং হলুদ হল মধ্যবর্তী ধাপ।

পাইথনে একজন দাবা নাইট দ্বারা লক্ষ্য অবস্থানে পৌঁছানোর ন্যূনতম পদক্ষেপগুলি খুঁজে বের করার প্রোগ্রাম

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

  • যদি r
  • r এবং c অদলবদল করুন
  • যদি (r, c) একই হয় (1, 0), তারপর
    • রিটার্ন ৩
  • যদি (r, c) একই হয় (2, 2), তারপর
    • প্রত্যাবর্তন 4
  • ডেল্টা :=r - c
  • যদি c> ডেল্টা হয়, তাহলে
    • রিটার্ন ডেল্টা - 2 *((ডেল্টা - c) / 3 এর ভাগফল)
  • অন্যথায়,
    • রিটার্ন ডেল্টা - 2 *((ডেল্টা - c) / 4 এর ভাগফল)
  • আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

    উদাহরণ

    class Solution:
       def solve(self, r, c):
          if r < c:
             r, c = c, r
          if (r, c) == (1, 0):
             return 3
          if (r, c) == (2, 2):
             return 4
          delta = r - c
          if c > delta:
             return delta - 2 * ((delta - c) // 3)
          else:
             return delta - 2 * ((delta - c) // 4)
    ob = Solution()
    r = 6
    c = 1
    print(ob.solve(r, c))

    ইনপুট

    6, 1

    আউটপুট

    3

    1. পাইথনের প্রতিটি অবস্থানে পৌঁছানোর জন্য একটি দাবা অংশের জন্য ন্যূনতম সংখ্যক চাল খুঁজে বের করার প্রোগ্রাম

    2. পাইথন ব্যবহার করে সমস্ত নোডে পৌঁছানোর জন্য ন্যূনতম সংখ্যক শীর্ষবিন্দু খুঁজে বের করার প্রোগ্রাম

    3. রোবট পরীক্ষা করার প্রোগ্রাম টার্গেট পজিশনে পৌঁছাতে পারে বা পাইথনে না

    4. পাইথন প্রোগ্রাম একটি তালিকায় সর্বাধিক এবং সর্বনিম্ন উপাদানের অবস্থান খুঁজে পেতে?