ধরুন আমাদের 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
- যদি "a" c তে থাকে, তাহলে
- রিটার্ন ধারণ করে/মোট
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
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