কম্পিউটার

পাইথনে n রিভার্সালের পরে একটি বলের অবস্থান খুঁজে বের করার প্রোগ্রাম


ধরুন, n সংখ্যক বল আছে। বল একটি ফ্যাশন 1,2,3,4,...,n অর্ডার করা হয়. এখন বলগুলিকে ক্রমানুসারে উল্টানো হয়েছে, বা n, n-1, n-2, ......, 2, 1 এভাবে সাজানো হয়েছে। বলগুলি আবার ক্রমানুসারে উল্টানো হয়েছে, এবার সেগুলি পজিশন 1 থেকে উল্টানো হয়েছে। n থেকে, অথবা এখন ক্রমটি n, 1, 2,....., n-1 হয়ে যায়। এই বিপরীত প্রক্রিয়াটি n বার পুনরাবৃত্তি হয় এবং প্রতিবার শুরুর অবস্থানটি ডানদিকে 1 স্থান সরানো হয়। আমাদের এখন রিভার্সালের পর 'সূচীতে' প্রাথমিকভাবে একটি বলের অবস্থান খুঁজে বের করতে হবে।

সুতরাং, যদি ইনপুটটি বল =5, সূচক =2 এর মত হয়, তাহলে আউটপুট হবে 4 বল প্রাথমিকভাবে:1, 2, 3, 4, 5

তারপর,

5,4,3,2,1
5,1,2,3,4
5,1,4,3,2
5,1,4,2,3

2 পজিশনের বলটি বর্তমানে 4 পজিশনে রয়েছে।

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

  • যদি সূচক <ফ্লোর মান (বল / 2), তারপর
    • রিটার্ন 2 * ইনডেক্স + 1
  • অন্যথায়,
    • রিটার্ন 2 *(বল - সূচক - 1)

উদাহরণ

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

def solve(balls, index):
   if index < balls // 2:
      return 2 * index + 1
   else:
      return 2 * (balls - index - 1)

print(solve(5, 2))

ইনপুট

5, 2

আউটপুট

4

  1. পাইথনের প্রত্যেকের দ্বারা গ্রাফটি অতিক্রম করা যায় কিনা তা খুঁজে বের করার প্রোগ্রাম

  2. পাইথনের একটি গ্রিড বক্সে বল কোথায় পড়ে তা খুঁজে বের করার প্রোগ্রাম

  3. পাইথনে একবার প্রদত্ত দিকটি স্লাইড করার পরে পরবর্তী বোর্ডের অবস্থান খুঁজে বের করার প্রোগ্রাম

  4. পাইথনে একটি লাইনে সম্ভাব্য অবস্থানের সংখ্যা খুঁজে বের করার জন্য প্রোগ্রাম