কম্পিউটার

পাইথনে সংখ্যা হ্রাসকারী গেমের বিজয়ী খুঁজে বের করার প্রোগ্রাম


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

সুতরাং, যদি ইনপুটটি n =19 এর মত হয়, তবে আউটপুটটি হবে Amal কারণ, 19 2 এর শক্তি নয়, তাই Amal এটিকে 16-এ কমিয়ে দেয়, তারপর বিমল 2 দিয়ে ভাগ করে 8 করে, তারপর আবার Amal 2 দ্বারা ভাগ করে। 4, তারপর বিমল এটিকে 2 করে এবং অবশেষে অমল এটিকে 1 করতে ভাগ করে এবং গেমটি জিতে নেয়।

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

  • res :=0
  • যখন n> 1, do
    • b :=1
    • যখন b * 2
    • b :=b * 2
  • n :=n - b
  • res :=res + 1
  • যদি res mod 2 0 এর মত হয়, তাহলে
    • 'আমল' ফেরত দিন
  • অন্যথায়,
    • 'Bmal' ফেরত দিন
  • উদাহরণ

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

    def solve(n):
       res = 0
       while(n > 1):
          b = 1
          while(b * 2 < n):
             b *= 2
          n -= b
          res += 1
       if res % 2 == 0:
          return 'Amal'
       else:
          return 'Bmal'
    
    n = 19
    print(solve(n))

    ইনপুট

    19
    

    আউটপুট

    Amal

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

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

    3. পাইথনে পুনরাবৃত্ত পূর্ণসংখ্যা গেম মুছে জয়ের জন্য চালের সংখ্যা খুঁজে বের করার প্রোগ্রাম

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