কম্পিউটার টিউটোরিয়াল

পাইথনে অক্ষর 'a' পাওয়ার প্রোবাবিলিটি বের করার প্রোগ্রাম

ধরুন আমাদের nটি ভিন্ন ইংরেজি অক্ষরের একটি অ্যারে আছে। আমাদের আরেকটি মান k আছে। আমরা kটি ভিন্ন ইন্ডেক্স (১-ইন্ডেক্সড) ইউনিফর্ম ডিস্ট্রিবিউশন দিয়ে সিলেক্ট করতে পারি। আমাদের বের করতে হবে প্রোবাবিলিটি যে সিলেক্ট করা k ইন্ডেক্সের মধ্যে কমপক্ষে একটি হবে যাতে অক্ষর 'a' থাকে।

উদাহরণস্বরূপ, যদি ইনপুট letters = ['a', 'c', 'a', 'b', 'l', 'a', 'b', 'z'] এবং k = 2 হয়, তবে আউটপুট হবে 64.28%। ২৮টি কম্বিনেশন আছে কিন্তু उनमेसे ১৮টি পেয়ার 'a' ধারণ করে, তাই 18/28 = 0.6428।

সমাধানের ধাপসমূহ

  • contain := 0
  • total := 0
  • letters-এর k এলিমেন্টের প্রতিটি কম্বিনেশন c এর জন্য:
    • যদি "a" c-তে থাকে, তবে contain := contain + 1
    • total := total + 1
  • contain/total রিটার্ন করুন

উদাহরণ

নিচের ইমপ্লিমেন্টেশনটি দেখুন ভালো বুঝার জন্য:

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.6428571428571429
  1. পাইথন ব্যবহার করে সর্বোচ্চ সম্ভাবনার পথ খুঁজে বের করার প্রোগ্রাম

  2. পাইথনে বাইনারি ট্রিতে নোড এবং এর ডিসেন্ডেন্টের মধ্যে সর্বোচ্চ পার্থক্য বের করার প্রোগ্রাম

  3. পাইথনে লিস্ট থেকে সর্বোচ্চ, সর্বনিম্ন, দ্বিতীয় সর্বোচ্চ ও দ্বিতীয় সর্বনিম্ন বের করা

  4. পাইথনে লিস্টে সর্বোচ্চ ও ন্যূনতম উপাদানের পজিশন বের করার প্রোগ্রাম