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

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

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

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

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

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

1 2
3 4

और

1 3
2 4

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

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

उदाहरण

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

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. पायथन में n नोड्स के साथ BST की संख्या गिनने का कार्यक्रम

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

  1. पथों की संख्या गिनने का कार्यक्रम जिसका योग अजगर में k है

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

  1. अजगर में मैट्रिक्स में घिरे द्वीपों की संख्या गिनने का कार्यक्रम

    मान लीजिए कि हमारे पास एक बाइनरी मैट्रिक्स है। जहां 1 भूमि का प्रतिनिधित्व करता है और 0 पानी का प्रतिनिधित्व करता है। जैसा कि हम जानते हैं कि एक द्वीप 1s का एक समूह है जो एक साथ समूहीकृत होता है जिसकी परिधि पानी से घिरी होती है। हमें पूरी तरह से घिरे हुए द्वीपों की संख्या ज्ञात करनी है। तो, अगर इनप