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

पायथन में n या उससे कम अंक होने की संभावना ज्ञात करने का प्रोग्राम

मान लीजिए हम एक अनोखा खेल खेल रहे हैं और हमारे पास तीन मान n, k, और h हैं। हम 0 अंकों से शुरू करते हैं, फिर हम 1 और h (सम्मिलित) के बीच बेतरतीब ढंग से एक संख्या चुन सकते हैं और हमें उतने ही अंक मिलेंगे। हम तब रुकते हैं जब हमने न्यूनतम k अंक प्राप्त कर लिए हैं। हमें यह संभावना ज्ञात करनी है कि हमारे पास n या उससे कम अंक हैं। यहां किसी भी संख्या को बेतरतीब ढंग से चुना जा सकता है और परिणामों की सभी संभावनाएं समान हैं।

इसलिए, यदि इनपुट n = 2, k = 2, h = 10 है, तो आउटपुट 0.11 होगा।

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

  • dp() नामक एक फ़ंक्शन परिभाषित करें। यह path लेगा।

    • यदि path k - 1 के समान है, तो:

      • (n - k + 1 और h का न्यूनतम) / h वापस करें

    • यदि path > n, तो:

      • 0 वापस करें

    • यदि path >= k, तो:

      • 1 वापस करें

    • dp(path + 1) - (dp(path + h + 1) - dp(path + 1)) / h वापस करें

  • मुख्य फ़ंक्शन से, निम्नलिखित करें:

  • यदि k शून्य है, तो:

    • 1 वापस करें

  • यदि n < k, तो:

    • 0 वापस करें

  • dp(0) वापस करें

उदाहरण

class Solution:
    def solve(self, n, k, h):
        if not k: return 1
        if n < k: return 0
        def dp(path):
            if path == k-1:
                return min((n - k + 1), h) / h
            if path > n:
                return 0
            if path >= k:
                return 1
            return dp(path + 1) - (dp(path + h + 1) - dp(path + 1)) / h
        return dp(0)

ob = Solution()
print(ob.solve(2, 2, 10))

इनपुट

2, 2, 10

आउटपुट

0.11
  1. पायथन में n-ary ट्री में सबसे लंबे पथ की लंबाई खोजने का प्रोग्राम पायथन में n-ary ट्री में सबसे लंबे पथ की लंबाई खोजने का प्रोग्राम

    मान लीजिए हमारे पास एक एज लिस्ट है जहां प्रत्येक आइटम (u, v) रखता है जो दर्शाता है कि u, v का पैरेंट है। हमें ट्री में सबसे लंबे पथ की लंबाई ढूंढनी है। पथ की लंबाई 1 + उस पथ में नोड्स की संख्या है। उदाहरण के लिए, यदि इनपुट है: तो आउटपुट 5 होगा, क्योंकि पथ [1, 4, 5, 7] है, कुल 4 नोड्स हैं, इसलिए पथ

  1. पायथन में जांचें कि ग्राफ सभी द्वारा पारगम्य है या नहीं पायथन में जांचें कि ग्राफ सभी द्वारा पारगम्य है या नहीं

    मान लीजिए, हमें एक ग्राफ दिया गया है जिसमें n शीर्ष हैं जो 0 से n-1 तक क्रमांकित हैं। ग्राफ अनिर्देशित है और प्रत्येक किनारे का एक भार है। ग्राफ में तीन प्रकार के भार हो सकते हैं और प्रत्येक भार एक विशेष कार्य को दर्शाता है। दो लोग हैं जो ग्राफ को पार कर सकते हैं, अर्थात् जैक और केसी। जैक ग्राफ को

  1. पायथन का उपयोग करके अधिकतम संभावना वाले पथ को खोजने का प्रोग्राम पायथन का उपयोग करके अधिकतम संभावना वाले पथ को खोजने का प्रोग्राम

    मान लीजिए हमारे पास n नोड्स वाला एक अनिर्देशित भारित ग्राफ है (नोड्स 0 से क्रमांकित हैं)। यह ग्राफ एज लिस्ट के रूप में दिया गया है, प्रत्येक एज e के लिए, उस एज को पार करने की सफलता की संभावना probability[e] है। हमारे पास प्रारंभ और अंत नोड्स भी हैं, हमें प्रारंभ से अंत तक जाने के लिए अधिकतम सफलता स