मान लीजिए कि हमारे पास 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 में मौजूद है, तो
- इसमें शामिल हैं:=+ 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