स्टैगर, स्टैक, योग


15

इस स्टैक ओवरफ्लो प्रश्न से प्रेरित

चुनौती

इनपुट

गैर-ऋणात्मक पूर्णांकों वाले वर्ग मैट्रिसेस की एक सरणी।

उत्पादन

इनपुट मैट्रिक्स से निर्मित एक वर्ग मैट्रिक्स निम्नानुसार है।

बता दें कि प्रत्येक इनपुट मैट्रिक्स का आकार है, और इनपुट मेट्रिसेस की संख्या है।N×NP

स्पष्टता के लिए, निम्न उदाहरण इनपुट मैट्रिसेस पर विचार करें ( , ):N=2P=3

 3   5
 4  10

 6   8
12  11

 2   0
 9   1
  1. पहले इनपुट मैट्रिक्स से शुरू करें।
  2. दूसरी इनपुट मैट्रिक्स N steps1 चरणों को नीचे और N right1 चरणों को दाईं ओर शिफ्ट करें, ताकि इसकी ऊपरी-बाईं प्रविष्टि पिछले एक के निचले-दाएँ प्रवेश के साथ मेल खाती हो।
  3. दूसरी, स्थानांतरित मैट्रिक्स की कल्पना करें जैसे कि यह पहले के शीर्ष पर खड़ी थी। संयोग प्रविष्टि पर दो मूल्यों का योग। अन्य मूल्यों लिखें, और साथ शेष प्रविष्टियों को भरने के 0लिए एक पाने के लिए मैट्रिक्स। उदाहरण इनपुट के साथ, अब तक का परिणाम है(2N1)×(2N1)

     3   5   0
     4  16   8
     0  12  11
    
  4. प्रत्येक शेष इनपुट मैट्रिक्स के लिए, इसे स्टैगर करें ताकि इसका ऊपरी-बाएँ संचित परिणाम मैट्रिक्स के निचले-दाएँ संयोग के साथ मेल खाता हो। तीसरे इनपुट मैट्रिक्स सहित उदाहरण में, देता है

     3   5   0   0
     4  16   8   0
     0  12  13   0
     0   0   9   1
    
  5. Ouput अंतिम इनपुट मैट्रिक्स को शामिल करने के बाद प्राप्त एक मैट्रिक्स है।((N1)P+1)×((N1)P+1)

अतिरिक्त नियम और स्पष्टीकरण

परीक्षण के मामलों:

प्रत्येक मामले में, इनपुट मैट्रिस पहले दिखाए जाते हैं, फिर आउटपुट।

  1. N=2 , :P=3

     3   5
     4  10
    
     6   8
    12  11
    
     2   0
     9   1
    
     3   5   0   0
     4  16   8   0
     0  12  13   0
     0   0   9   1
    
  2. N=2 ,P=1 :

     3   5
     4  10
    
     3   5
     4  10
    
  3. N=1 ,P=4 :

     4
    
     7
    
    23
    
     5
    
    39
    
  4. N=3 ,P=2 :

    11  11   8
     6   8  12
    11   0   4
    
     4   1  13
     9  19  11
    13   4   2
    
    11  11   8   0   0
     6   8  12   0   0
    11   0   8   1  13
     0   0   9  19  11
     0   0  13   4   2
    
  5. N=2 ,P=4 :

    14  13
    10   0
    
    13  20
    21   3
    
     9  22
     0   8
    
    17   3
    19  16
    
    14  13   0   0   0
    10  13  20   0   0
     0  21  12  22   0
     0   0   0  25   3
     0   0   0  19  16
    

इसके लिए आपका MATL समाधान कब तक है?
ग्यूसेप

@Giuseppe मैंने इसे MATL में आज़माया नहीं है। परीक्षण मामलों के लिए मैंने लिंक किए गए प्रश्न में मेरे उत्तर से MATLAB कोड का उपयोग किया
लुइस मेंडो

जवाबों:


4

जेली , 15 12 बाइट्स

⁹ṖŻ€ƒZƲ⁺+µ@/

इसे ऑनलाइन आज़माएं!

यह काम किस प्रकार करता है

⁹ṖŻ€ƒZƲ⁺+µ@/  Main link. Argument: A (array of matrices)

         µ    Begin a monadic chain.
          @/  Reduce A by the previous chain, with swapped arguments.
                Dyadic chain. Arguments: M, N (matrices)
      Ʋ           Combine the links to the left into a monadic chain with arg. M.
⁹                 Set the return value to N.
 Ṗ                Pop; remove its last row.
     Z            Zip; yield M transposed.
    ƒ             Fold popped N, using the link to the left as folding function and
                  transposed M as initial value.
  Ż€                Prepend a zero to each row of the left argument.
                    The right argument is ignored.
       ⁺        Duplicate the chain created by Ʋ.
        +       Add M to the result.

6

आर , 88 81 बाइट्स

function(A,N,P,o=0*diag(P*(N-1)+1)){for(i in 1:P)o[x,x]=o[x<-1:N+i-1,x]+A[[i]];o}

इसे ऑनलाइन आज़माएं!

एक लेता है listमैट्रिक्स की, A, N, और P

शून्य के अपेक्षित मैट्रिक्स बनाता है oऔर Aमें उचित उपमात्राओं की सामग्री को मूल रूप से जोड़ता है o


4

जावास्क्रिप्ट (ईएस 6), 102 बाइट्स

के रूप में इनपुट लेता है (n,p,a)

(n,p,a)=>[...Array(--n*p+1)].map((_,y,r)=>r.map((_,x)=>a.map((a,i)=>s+=(a[y-i*n]||0)[x-i*n]|0,s=0)|s))

इसे ऑनलाइन आज़माएं!

कैसे?

0w

w=(n1)×p+1

(x,y)

sx,y=i=0p1ai(xi×(n1),yi×(n1))

जहां अपरिभाषित कोशिकाओं को शून्य से बदल दिया जाता है।



3

जेली , 12 बाइट्स

Z€Ż€’}¡"Jµ⁺S

इसे ऑनलाइन आज़माएं!

Z€Ż€’}¡"Jµ⁺S
         µ    Everything before this as a monad.
          ⁺   Do it twice
Z€            Zip €ach of the matrices
        J     1..P
       "      Pair the matrices with their corresponding integer in [1..P] then apply the 
              following dyad:
  Ż€            Prepend 0 to each of the rows
      ¡         Repeat this:
    ’}          (right argument - 1) number of times
              Doing everything before µ twice adds the appropriate number of rows and
              columns to each matrix. Finally:
           S  Sum the matrices.

12 बाइट्स

J’0ẋ;Ɱ"Z€µ⁺S

यदि अतिरिक्त शून्य की अनुमति दी गई थी ZŻ€‘ɼ¡)⁺Sतो एक शांत 9 बाइट समाधान है। TIO





1

चारकोल , 52 बाइट्स

≦⊖θE⊕×θηE⊕×θηΣEEη×θξ∧¬∨∨‹ιν›ι⁺θν∨‹λν›λ⁺θν§§§ζξ⁻ιν⁻λν

इसे ऑनलाइन आज़माएं! लिंक कोड के वर्बोज़ संस्करण के लिए है और इसमें कुछ प्रयोग करने योग्य प्रारूपण के लिए दो बाइट्स शामिल हैं। मैंने एक ऐसे संस्करण के साथ शुरुआत की, जिसने सभी सरणियों को गद्देदार किया और फिर उन्हें सारांशित किया लेकिन मैं इस संस्करण को छोटा करने के बजाय इस गोल्फ को करने में सक्षम था। स्पष्टीकरण:

≦⊖θ

इनपुट मूल्य में कमी एन

E⊕×θηE⊕×θη

परिणाम के आकार की गणना करें (एन-1)पी+1 और अंतर्निहित सीमा पर दो बार नक्शा इस प्रकार एक परिणाम मैट्रिक्स का उत्पादन होता है जो अंतर्निहित रूप से मुद्रित होता है।

ΣEEη×θξ

इनपुट मूल्य पर निहित सीमा पर नक्शा पी और प्रत्येक तत्व को गुणा करें एन-1। फिर, परिणामी सीमा पर मैप करें और अंतिम परिणाम का योग करें।

∧¬∨∨‹ιν›ι⁺θν∨‹λν›λ⁺θν

जाँच करें कि न तो कोई सूचकांक सीमा से बाहर है।

§§§ζξ⁻ιν⁻λν

वांछित मूल्य प्राप्त करने के लिए मूल इनपुट में ऑफसेट।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.