কম্পিউটার

কিছু অক্ষর এবং k আকারের সংমিশ্রণে 'a' অক্ষর পাওয়ার সম্ভাবনা খুঁজে পেতে পাইথন প্রোগ্রাম


ধরুন আমাদের n ভিন্ন ইংরেজি অক্ষর সহ একটি অ্যারে আছে। আমাদের আরও একটি মান k আছে। আমরা অভিন্ন বন্টন সহ k বিভিন্ন সূচক (1-সূচীযুক্ত) নির্বাচন করতে পারি। আমাদের সম্ভাব্যতা খুঁজে বের করতে হবে যে নির্বাচিত k সূচকগুলির মধ্যে অন্তত একটিতে 'a' অক্ষর থাকবে।

সুতরাং, যদি ইনপুট অক্ষর =['a', 'c', 'a', 'b', 'l', 'a', 'b', 'z'] k =2 এর মত হয়, তাহলে আউটপুট হবে 64.28% হবে। (1, 2), (1, 3) এর মতো সংমিশ্রণ রয়েছে যেমন 28টি সংমিশ্রণ রয়েছে তবে তাদের মধ্যে কিছু যেমন (1,2), (1,3), (6,7) এইরকম 18 জোড়া 7টি ধরে আছে, তাই 18/28 =0.6428।

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

  • ধারণ করে :=0
  • মোট :=0
  • k উপাদানের সাথে c অক্ষরের প্রতিটি সংমিশ্রণের জন্য, করুন
    • যদি "a" c তে থাকে, তাহলে
      • contain :=ধারণ + 1
    • মোট :=মোট + 1
  • রিটার্ন ধারণ করে/মোট

উদাহরণ

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

from itertools import combinations
def solve(letters, k):
   contain = 0
   total = 0

   for c in combinations(letters, k):
      if "a" in c:
         contain += 1
      total += 1
return contain/total

letters = ['a', 'c', 'a', 'b', 'l', 'a', 'b', 'z']
k = 2
print(solve(letters, k))

ইনপুট

['a', 'c', 'a', 'b', 'l', 'a', 'b', 'z'], 2

আউটপুট

0

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

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

  3. পাইথন প্রোগ্রাম একটি তালিকায় বৃহত্তম, ক্ষুদ্রতম, দ্বিতীয় বৃহত্তম এবং দ্বিতীয় ক্ষুদ্রতম খুঁজে পেতে?

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