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

Python में टूर्नामेंट में खेले गए मैचों की संख्या गिनें

मान लीजिए हमारे पास एक संख्या n है। तो एक टूर्नामेंट में n टीमें हैं जिसके कुछ नियम हैं:

  • यदि टीमों की संख्या वर्तमान में सम है, तो प्रत्येक टीम दूसरी टीम के साथ मर्ज हो जाती है। और कुल (n/2) मैच खेले जाते हैं, उनमें से (n/2) विजेता टीमें अगले राउंड में जाएंगी।
  • यदि टीमों की संख्या विषम है, तो एक टीम रैंडमली टूर्नामेंट में आगे बढ़ जाती है, और बाकी मर्ज हो जाती हैं। तो कुल (n-1)/2 मैच खेले जाते हैं, और (n-1)/2+1 टीमें विजेता के रूप में अगले राउंड में जाती हैं।

हमें फाइनल विजेता प्राप्त करने के लिए खेले गए कुल मैचों की संख्या ढूंढनी है।

इसलिए, यदि इनपुट है: n = 10, तो आउटपुट 9 होगा क्योंकि:

  • प्रारंभ में 5-5 विभाजन होगा, उनमें से 5 क्वालीफाई करेंगे
  • अब एक टीम को पास करें और 2-2 टीमों को विभाजित करें, तो 3 क्वालीफाई करेंगे
  • अब एक टीम को पास करें और 1-1 टीमों को विभाजित करें, तो 2 क्वालीफाई करेंगे
  • 1-1 विभाजित करें और एक विजेता के रूप में क्वालीफाई करेगा

हल करने के चरण

  1. ans := 0
  2. जब n != 1:
    • f := n // 2 का फ्लोर
    • remainder := n % 2
    • ans := ans + f
    • n := f + remainder
  3. ans वापस करें

उदाहरण (Python)

def solve(n):
    ans = 0
    while n != 1:
        f = n // 2
        remainder = n % 2
        ans += f
        n = f + remainder
    return ans

n = 10
print(solve(n))

इनपुट

10

आउटपुट

9
  1. पायथन में ऐरे में x से बड़े सभी वैल्यूज को फ़िल्टर करने का प्रोग्राम पायथन में ऐरे में x से बड़े सभी वैल्यूज को फ़िल्टर करने का प्रोग्राम

    मान लीजिए हमारे पास nums नामक संख्याओं की सूची है। हमारे पास x नामक एक और संख्या भी है। हमें nums से उन सभी नंबरों को फ़िल्टर करके ढूंढना है जो x से कम हैं। पायथन में filter() मेथड होता है जो फंक्शन को आर्गुमेंट के रूप में लेता है और इस फंक्शन का उपयोग करके फ़िल्टर करता है। तो, यदि इनपुट nums = [1,5

  1. बाइनरी ट्री में पथ जिनका योग k हो, उनकी संख्या गिनने का पायथन प्रोग्राम बाइनरी ट्री में पथ जिनका योग k हो, उनकी संख्या गिनने का पायथन प्रोग्राम

    मान लीजिए हमारे पास एक बाइनरी ट्री और एक मान k है, हमें उन अद्वितीय नोड-टू-सबचाइल्ड पथों की संख्या ढूंढनी है जिनका योग k के बराबर है। उदाहरण के लिए, यदि इनपुट इस तरह है: और k = 5, तो आउटपुट 2 होगा, क्योंकि पथ हैं [2, 3] और [1, 4]। इसे हल करने के लिए, हम निम्न चरणों का पालन करेंगे: count := एक मैप

  1. मैट्रिक्स में पूरी तरह से घिरे हुए द्वीपों की संख्या गिनने का पायथन प्रोग्राम मैट्रिक्स में पूरी तरह से घिरे हुए द्वीपों की संख्या गिनने का पायथन प्रोग्राम

    मान लीजिए हमारे पास एक बाइनरी मैट्रिक्स है। जहां 1 भूमि दर्शाता है और 0 पानी दर्शाता है। जैसा कि हम जानते हैं एक द्वीप 1 का समूह है जो एक साथ जुड़े हुए हैं जिसकी परिधि पानी से घिरी हुई है। हमें पूरी तरह से घिरे हुए द्वीपों की संख्या ढूंढनी है। उदाहरण के लिए, यदि इनपुट इस तरह है: तो आउटपुट 2 होगा,