Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

पायथन में अभिव्यक्ति परिणामों के अधिकतम घटित आवृत्ति मूल्यों के अपेक्षित मूल्य को खोजने का कार्यक्रम

मान लीजिए कि हमारे पास एम अलग-अलग अभिव्यक्तियां हैं, और इन अभिव्यक्तियों के उत्तर 1 से एन (दोनों समावेशी) में हैं, तो एक्स =अधिकतम (एफ (आई)) पर विचार करें, प्रत्येक i के लिए रेंज 1 से एन तक, हमें अपेक्षित मूल्य खोजना होगा एक्स का।

इसलिए, यदि इनपुट M =3, N =3 जैसा है, तो आउटपुट 2.2 होगा, क्योंकि

<थेड>
अनुक्रम अधिकतम आवृत्ति
111 3
112 2
113 2
122 2
123 1
133 1
222 3
223 2
233 2
333 3

$$E(x) =\sum P(x) * x =P(1) + 2P(2) + 3P(3) =\frac{1}{10} + 2 * \frac{6}{10} + 3 * \frac{3}{10} =\frac{22}{10}$$

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • संयोजन :=एक नया नक्शा
  • एक फ़ंक्शन को परिभाषित करें nCr() । इसमें n, k_in
  • लगेगा
  • k :=न्यूनतम k_in और (n - k_in)
  • यदि n
  • वापसी 0
  • अन्यथा जब (n, k) संयोजन में हो, तब
    • वापसी संयोजन[n, k]
  • अन्यथा जब k, 0 के समान हो, तो
    • वापसी 1
  • अन्यथा जब n, k के समान हो, तो
    • वापसी 1
  • अन्यथा,
    • a :=1
    • 0 से k-1 की सीमा में cnt के लिए
      • a :=a * (n - cnt)
      • a :=a/(cnt + 1) का तल
      • संयोजन[n, cnt + 1] :=a
    • एक वापसी
  • मुख्य विधि से, निम्न कार्य करें:
  • गिरफ्तारी:=एक नई सूची
  • k के लिए 2 से M + 1 की श्रेणी में, करें
    • a :=1
    • s :=0
    • मैं के लिए 0 से एम/के + 2 की मंजिल तक, करते हैं
      • यदि M
      • लूप से बाहर आएं
    • s :=s + a * nCr(N, i) * nCr(N-1+M-i*k, M-i*k)
    • a :=-a
  • गिरफ्तारी के अंत में डालें
  • कुल :=गिरफ्तारी का अंतिम तत्व
  • diff :=एक सरणी जहां शुरुआत में arr[0] डालें, फिर एक सूची जोड़ें जहां (arr[cnt + 1] - arr[cnt]) प्रत्येक cnt के लिए 0 से M - 2 की सीमा में हो
  • आउटपुट:=में मौजूद सभी तत्वों का योग (diff[cnt] *(cnt + 1) / cnt के लिए कुल 0 से M-1 तक)
  • रिटर्न आउटपुट
  • उदाहरण

    आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

    combination = {}
    def nCr(n, k_in):
       k = min(k_in, n - k_in)
       if n < k or k < 0:
          return 0
       elif (n, k) in combination:
          return combination[(n, k)]
       elif k == 0:
          return 1
       elif n == k:
          return 1
       else:
          a = 1
          for cnt in range(k):
             a *= (n - cnt)
             a //= (cnt + 1)
             combination[(n, cnt + 1)] = a
          return a
    
    def solve(M, N):
       arr = []
       for k in range(2, M + 2):
          a = 1
          s = 0
          for i in range(M // k + 2):
             if (M < i * k):
                break
             s += a * nCr(N, i) * nCr(N - 1 + M - i * k, M - i * k)
             a *= -1
          arr.append(s)
       total = arr[-1]
       diff = [arr[0]] + [arr[cnt + 1] - arr[cnt] for cnt in range(M - 1)]
       output = sum(diff[cnt] * (cnt + 1) / total for cnt in range(M))
       return output
    
    M = 3
    N = 3
    print(solve(M, N))

    इनपुट

    3, 3

    आउटपुट

    1

    1. अजगर में k संचालन के बाद न्यूनतम संभव अधिकतम मूल्य खोजने का कार्यक्रम

      मान लीजिए कि हमारे पास संख्याओं की एक सूची है जिसे अंक कहा जाता है और दूसरा मान k है। आइए अब हम एक ऐसी संक्रिया पर विचार करें जिसमें हम सूची के किसी भी अवयव से 1 घटा सकते हैं। हम इस ऑपरेशन को k बार कर सकते हैं। k ऐसे संक्रियाओं के बाद हमें सूची में न्यूनतम संभव अधिकतम मान ज्ञात करना होगा। इसलिए, यद

    1. सूची में एक तत्व खोजने का कार्यक्रम जिसका मूल्य पायथन में इसकी आवृत्ति के समान है

      मान लीजिए हमारे पास संख्याओं की एक सूची है जिसे अंक कहते हैं, हमें यह जांचना होगा कि क्या कोई तत्व है जिसकी सूची में आवृत्ति उसके मान के समान है या नहीं। इसलिए, अगर इनपुट [2, 4, 8, 10, 4, 4, 4] जैसा है, तो आउटपुट सही होगा इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - res :=मूल्य-वार आवृत्ति सं

    1. शब्दकोश में दूसरा अधिकतम मूल्य खोजने के लिए पायथन कार्यक्रम

      इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें दो पूर्णांक दिए गए हैं, हमें शब्दकोश में दूसरा अधिकतम मान प्रिंट करना होगा आइए अब नीचे दिए गए कार्यान्वयन में अवधारणा को देखें- दृष्टिकोण 1 - नकारात्मक अनुक्रमणिका द्वारा क्रमबद्ध() फ़ंक्शन का उपयोग करना उदाहरण