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

दी गई स्थिति से संकेतक यादृच्छिक चर से फ़ंक्शन की गणना करने के लिए पायथन प्रोग्राम


मान लीजिए कि हमारे पास दो मान k और n हैं। पहले n प्राकृत संख्याओं 1, 2, ..., n के यादृच्छिक क्रमपरिवर्तन मान लीजिए p1, p2, ..., pn पर विचार करें और F का मान इस प्रकार परिकलित करें कि F =(X2+...+Xn-1)k , जहां Xi एक संकेतक यादृच्छिक चर है, जो 1 है जब निम्नलिखित दो स्थितियों में से एक होता है:pi-1 pi+1 या pi-1> pi

इसलिए, यदि इनपुट k =1 n =1000 जैसा है, तो आउटपुट 1996/3

. होगा

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

  • एक फ़ंक्शन को परिभाषित करें exp_factor() । इसमें n,k लगेगा
  • यदि k 1 के समान है, तो
    • वापसी(2*(n-2), 3)
  • अन्यथा जब k, 2 के समान हो, तो
    • वापसी (40*n^2 -144*n + 131, 90)
  • अन्यथा जब k, 3 के समान हो, तो
    • वापसी (280*n^3 - 1344*n^2 +2063*n -1038,945)
  • अन्यथा जब k, 4 के समान हो, तो
    • वापसी (2800*n^4 - 15680*n^3 + 28844*n^2 - 19288*n + 4263, 14175)
  • अन्यथा जब k, 5 के समान हो, तो
    • वापसी (12320*n^5 - 73920*n^4 + 130328*n^3 - 29568*n^2 - 64150*n -5124, 93555)
  • 1.0 वापसी
  • मुख्य विधि से, निम्न कार्य करें -
  • एम:=n-2
  • p :=2.0/3
  • q :=1 - p
  • (num, den) :=exp_factor(n, k)
  • g :=gcd(num, den)
  • वापसी अंश (num/g) / (den/g)

उदाहरण

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

from math import gcd

def exp_factor(n,k):
   if k == 1:
      return (2*(n-2),3)
   elif k == 2:
      return (40*n**2 -144*n + 131,90)
   elif k == 3:
      return (280*n**3 - 1344*n**2 +2063*n -1038,945)
   elif k == 4:
      return (2800*n**4 - 15680*n**3 + 28844*n**2 - 19288*n + 4263, 14175)
   elif k == 5:
      return (12320*n**5 - 73920*n**4 + 130328*n**3 - 29568*n**2 - 64150*n -5124, 93555)
   return 1.0

def solve(k, n):
   M = n-2
   p = 2.0/3
   q = 1 - p

   num, den = exp_factor(n,k)
   g = gcd(num, den)
   return str(int(num/g))+'/'+str(int(den/g))

k = 1
n = 1000
print(solve(k, n))

इनपुट

1, 1000

आउटपुट

1996/3

  1. पायथन में दिए गए स्ट्रिंग इनबिल्ट फ़ंक्शन के क्रमपरिवर्तन के लिए पायथन प्रोग्राम

    तार दिया गया है। हमारा काम दिए गए स्ट्रिंग के क्रमपरिवर्तन को प्रदर्शित करना है। यहां इनबिल्ट फ़ंक्शन क्रमपरिवर्तन (पुनरावृत्तीय) का उपयोग करके अजगर में इस समस्या को हल करें। उदाहरण Input : string = 'XYZ' Output : XYZ XZY YXZ YZX ZXY ZYX एल्गोरिदम Step 1: given string. Step 2: Get all permut

  1. n+nm+nmm की गणना करने के लिए पायथन प्रोग्राम ......+n(m बार)।

    यहाँ n को वह मान दिया गया है जो धनात्मक संख्या है m वह संख्या है जब तक श्रृंखला चलती है। हमारा काम इस श्रृंखला की गणना करना है। एल्गोरिदम Step 1: Input n, m; Step 2: Converting the number to string. Step 3: Initializing result as number and string. Step 4: Adding remaining terms. Step 5: Concatenati

  1. किसी दिए गए स्थान से 'के' बिट्स निकालने के लिए पायथन प्रोग्राम?

    इस फ़ंक्शन का उपयोग k बिट्स को पॉज़ स्थिति से निकालने के लिए किया जाता है और निकाले गए मान को वापस करता है। यहां हम पायथन स्लाइसिंग तकनीक का उपयोग करते हैं। उदाहरण Input:: number=170 K=5 Pos=2 Output=21 एल्गोरिदम Extractionbit(no,k,pos) /*user input number is stored in variable no, extra