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

पायथन में एक सरणी के तत्वों को छाँटने के लिए अपेक्षित फेरबदल की अपेक्षित संख्या खोजने के लिए कार्यक्रम

मान लीजिए कि हमारे पास तत्वों का एक सेट है। हमें उन्हें गैर-घटते क्रम में क्रमबद्ध करना होगा। लेकिन छँटाई तकनीक यादृच्छिक है। हम जाँचेंगे कि ऐरे को सॉर्ट किया गया है या नहीं, यदि नहीं तो रैंडम फेरबदल करें और फिर से जांचें। जब तक सभी तत्वों को क्रमबद्ध नहीं किया जाता तब तक इस प्रक्रिया को जारी रखें। इस मामले में हमें उन्हें छाँटने के लिए अपेक्षित फेरबदल की अपेक्षित संख्या ज्ञात करनी होगी। 6 दशमलव स्थानों तक उत्तर दिखाएँ।

इसलिए, यदि इनपुट nums =[5,2,7] जैसा है, तो आउटपुट 6 होगा क्योंकि वहाँ 3 क्रमपरिवर्तन संभव हैं, इसलिए संभावना 1/3 है

  • अगर हमें i =1 पुनरावृत्ति पर क्रमबद्ध सरणी मिलती है, तो इसमें 1/3 लगेगा
  • अगर हमें i =2 पुनरावृत्तियों पर क्रमबद्ध सरणी मिलती है, तो इसमें (2/3)*(1/3)
  • लगेगा

अगर हमें पुनरावृत्तियों की i-th संख्या पर क्रमबद्ध सरणी मिलती है, तो इसमें (2/3)^(i-1) * (1/3)

लगेगा।

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

  • यदि अंकों को क्रमबद्ध किया जाता है, तो
    • वापसी 0
  • अन्यथा,
    • m:=एक नया शब्दकोश शुरू में खाली
    • प्रत्येक i के लिए अंकों में, करें
      • अगर मैं मी में मौजूद है, तो
        • m[i] :=m[i] + 1
      • अन्यथा,
        • एम[i]:=1
    • संख्या:=1
    • एम में प्रत्येक कुंजी के लिए, करते हैं
      • संख्या:=संख्या * फैक्टोरियल(एम[i])
    • den:=फैक्टोरियल(अंकों का आकार)
    • वापसी (den/num) और 6 दशमलव स्थानों तक पूर्णांकित करना

उदाहरण

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

from math import factorial
def solve(nums):
   if nums == sorted(nums):
      return 0
   else:
      m={}
      for i in nums:
         if i in m:
            m[i]+=1
         else:
            m[i]=1
      num=1
      for i in m:
         num *= factorial(m[i])

      den=factorial(len(nums))
      return round((den/num),6)

nums = [5,2,7]
print(solve(nums))

इनपुट

[5,2,7]

आउटपुट

6.0

  1. सूची में सबसे छोटी संख्या खोजने के लिए पायथन प्रोग्राम

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें सभी सूची दी गई है, हमें सूची में उपलब्ध सबसे छोटी संख्या प्रदर्शित करने की आवश्यकता है यहां हम या तो सूची को क्रमबद्ध कर सकते हैं और सबसे छोटा तत्व प्राप्त कर सकते हैं या सबसे छोटा तत्व प्राप्त करने के लिए अंतर्न

  1. एक सरणी में सबसे बड़ा तत्व खोजने के लिए पायथन प्रोग्राम

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

  1. सरणी का योग खोजने के लिए पायथन कार्यक्रम

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