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

पायथन में संभावित विनम्र मैट्रिक्स की संख्या गिनने का प्रोग्राम


मान लीजिए हमारे पास दो मान n और m हैं। हमें क्रम n x m के विनम्र मैट्रिक्स की संभावित व्यवस्थाओं की संख्या खोजनी है। एक मैट्रिक्स को विनम्र कहा जाता है जब:

  • इसमें 1 से n x m तक का प्रत्येक तत्व ठीक एक बार होता है
  • किसी भी दो इंडेक्स जोड़े (i1, j1) और (i2, j2) के लिए, यदि (i1 + j1) < (i2 + j2), तो Mat[i1, j1] < Mat[i2, j2] होना चाहिए।

यदि उत्तर बहुत बड़ा है तो परिणाम मॉड 10^9 + 7 लौटाएं।

तो, यदि इनपुट n = 2, m = 2 है, तो आउटपुट 2 होगा, क्योंकि दो संभावित मैट्रिक्स हैं -

12
34

और

13
24

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

  • p := 10^9+7
  • result := मान 1 वाली एक सूची
  • x को 2 से 10^6 तक की रेंज में, करें
    • temp := result का अंतिम तत्व
    • temp :=(temp*x) mod p
    • temp को result के अंत में डालें
  • यदि m > n, तो
    • temp := n
    • n := m
    • m := temp
  • prod := 1
  • x को 1 से m तक की रेंज में, करें
    • prod :=(prod * result[x-1]) mod p
    • prod := (prod^2) mod p
  • x को 0 से n - m तक की रेंज में, करें
    • prod := (prod * result[m-1]) mod p
  • prod लौटाएं

उदाहरण

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

p = 10**9+7 def solve(n, m): result = [1] for x in range(2,10**6+1): temp = result[-1] temp = (temp*x) % p result.append(temp) if(m > n): temp = n n = m m = temp prod = 1 for x in range(1,m): prod = (prod * result[x-1]) % p prod = (prod**2) % p for x in range(n-m+1): prod = (prod*result[m-1]) % p return prod n = 3 m = 3 print(solve(n, m))

इनपुट

3, 3 

आउटपुट

24

  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 होगा,