কম্পিউটার

পাইথনে n বা কম পয়েন্ট থাকার সম্ভাবনা খুঁজে বের করার জন্য প্রোগ্রাম


ধরুন আমরা একটি অনন্য গেম খেলছি এবং আমাদের তিনটি মান আছে n, k, এবং h৷ আমরা 0 পয়েন্ট থেকে শুরু করি, তারপর আমরা 1 এবং h (অন্তর্ভুক্ত) এর মধ্যে এলোমেলোভাবে একটি সংখ্যা নির্বাচন করতে পারি এবং আমরা ততগুলি পয়েন্ট পাব। আমরা যখন ন্যূনতম k পয়েন্ট স্কোর করি তখন আমরা থামি। আমাদের সম্ভাব্যতা খুঁজে বের করতে হবে যে আমাদের n বা কম পয়েন্ট আছে। এখানে যেকোন সংখ্যা এলোমেলোভাবে বাছাই করা যেতে পারে এবং ফলাফলের সকলেরই একই সম্ভাবনা রয়েছে।

সুতরাং, যদি ইনপুট n =2, k =2, h =10 এর মত হয়, তাহলে আউটপুট হবে 0.11।

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

  • একটি ফাংশন dp() সংজ্ঞায়িত করুন। এই পথ নিতে হবে.

    • যদি পথটি k − 1 এর মত হয়, তাহলে

      • রিটার্ন (সর্বনিম্ন n − k + 1 এবং h) / h

    • যদি পথ> n, তারপর

      • রিটার্ন 0

    • যদি পথ>=কে, তাহলে

      • রিটার্ন 1

    • ফিরুন dp(path + 1) − (dp(path + h + 1) − dp(path + 1)) / h

  • প্রধান ফাংশন থেকে, নিম্নলিখিতগুলি করুন -

  • k যদি শূন্য হয়, তাহলে

    • রিটার্ন 1

  • যদি n

    • রিটার্ন 0

  • dp(0)

    ফেরত দিন

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

উদাহরণ

class Solution:
   def solve(self, n, k, h):
      if not k: return 1
         if n < k: return 0
         def dp(path):
            if path == k− 1:
               return min((n− k + 1), h) / h
            if path > n:
               return 0
            if path >= k:
               return 1
            return dp(path + 1)− (dp(path + h + 1)− dp(path + 1)) / h
         return dp(0)
ob = Solution()
print(ob.solve(2,2,10))

ইনপুট

2,2,10

আউটপুট

0.11

  1. পাইথনে একটি এন-আরি গাছের দীর্ঘতম পথের দৈর্ঘ্য খুঁজে বের করার প্রোগ্রাম

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

  3. পাইথনের একটি পরিবারে উত্তরাধিকারের আদেশ খুঁজে বের করার জন্য প্রোগ্রাম

  4. পাইথন ব্যবহার করে সর্বাধিক সম্ভাব্যতার সাথে পথ খুঁজে বের করার প্রোগ্রাম