चुनौती:
एक NxN मैट्रिक्स को देखते हुए जहां और आठ अलग-अलग 'तह विकल्पों' में से एक है, घटाए गए मूल्यों के साथ एक 2D सरणी / सूची का उत्पादन करता है।
आठ तह विकल्प हैं: बाएं से दाएं; दाएं से बाएं; ऊपर से नीचे; नीचे से ऊपर; topleft करने वाली bottomright; Topright करने वाली bottomleft; bottomleft करने वाली Topright; bottomright करने वाली topleft।
कदम से कदम उदाहरण:
इनपुट मैट्रिक्स:
[[ 1, 3, 5, 7],
[ 0, 8, 6, 4],
[ 1, 1, 1, 1], (a'th row in the explanation below)
[ 1,25, 0,75]]
फोल्डिंग ऑप्शन टॉप-टू-बॉटम के परिणामस्वरूप हम निम्न परिणाम का उत्पादन करते हैं:
[[ 1,-7,-5,-3],
[ 0,22,-5,68]]
क्यूं कर? हम ऊपर से नीचे तक मोड़ते हैं। चूंकि मैट्रिक्स आयाम भी हैं, इसलिए हमारे पास संरक्षित करने के लिए एक मध्य परत नहीं है। 'वें पंक्ति से घटा दिए जाएंगे वें पंक्ति' (हो गया होता 'अजीब आयाम मैट्रिक्स के लिए वीं पंक्ति); ऐसा बन जाता है । तब 'वें पंक्ति को ' वें पंक्ति द्वारा घटाया जाएगा विषम आयाम मैट्रीस के लिए 'th पंक्ति) होगा; ऐसा बन जाता है ।[1, 1, 1, 1]
[1-0, 1-8, 1-6, 1-4]
[1, -7, -5, -3]
[1, 25, 0, 75]
[1-1, 25-3, 0-5, 75-7]
[0, 22, -5, 68]
तह विकल्प के साथ नीचे-से-toftft के साथ (ऊपर एक ही इनपुट-मैट्रिक्स के साथ) हम परिणाम के रूप में निम्न आउटपुट करते हैं:
[[-74, 2, 1, 7],
[ 0, 7, 6],
[-24, 1],
[ 1]]
निम्नलिखित तह घटाव के साथ:
[[1-75, 3-1, 5-4, 7],
[ 0-0, 8-1, 6],
[1-25, 1],
[ 1]]
चुनौती नियम:
- फोल्डिंग विकल्पों के लिए आप
[A-Za-z]
में किसी भी आठ अलग अक्षर या अलग संख्या का उपयोग कर सकते हैं । नंबर या शायद सबसे आम विकल्प हैं, लेकिन अगर आप कुछ स्मार्ट गणनाओं के लिए सीमा के भीतर अलग-अलग संख्याओं का उपयोग करना चाहते हैं, तो ऐसा करने के लिए स्वतंत्र महसूस करें। कृपया बताएं कि आपने अपने उत्तर में किन तह विकल्पों का उपयोग किया है। - इनपुट-मैट्रिक्स हमेशा एक वर्ग NxN मैट्रिक्स होगा, इसलिए आपको किसी भी आयताकार NxM मैट्रिक्स को संभालने की आवश्यकता नहीं है। भी हमेशा कम से कम 2 होगा, क्योंकि एक खाली या 1x1 मैट्रिक्स को फोल्ड नहीं किया जा सकता है।
- मैट्रिक्स के इनपुट में हमेशा रेंज में गैर-नकारात्मक संख्याएं होंगी (इसलिए आउटपुट में संख्या रेंज में होगी )।
- विरोधी (विरोधी) विकर्ण तह या विषम-आयाम ऊर्ध्वाधर / क्षैतिज तह के साथ, मध्य 'परत' अपरिवर्तित रहेगा।
- I / O लचीला है। एक 2 डी सरणी / पूर्णांक की सूची हो सकती है; एक अंतरिक्ष और न्यूलाइन सीमांकित स्ट्रिंग के रूप में वापस या मुद्रित किया जा सकता है; आप इनपुट-मैट्रिक्स को संशोधित कर सकते हैं और उन संख्याओं को प्रतिस्थापित कर सकते हैं जिन्हें उनके चले जाने के संकेत
null
के लिए[-999, 999]
सीमा के बाहर या एक संख्या के साथ जाना चाहिए ; आदि आदि।
सामान्य नियम:
- यह कोड-गोल्फ है , इसलिए बाइट्स जीत में सबसे छोटा जवाब है।
कोड-गोल्फ भाषाओं को गैर-कोडगॉल्फिंग भाषाओं के साथ उत्तर पोस्ट करने से हतोत्साहित न करें। 'किसी भी' प्रोग्रामिंग भाषा के लिए यथासंभव संक्षिप्त उत्तर के साथ आने का प्रयास करें। - डिफ़ॉल्ट I / O नियमों के साथ आपके उत्तर के लिए मानक नियम लागू होते हैं , इसलिए आपको उचित पैरामीटर और रिटर्न-प्रकार, पूर्ण कार्यक्रमों के साथ STDIN / STDOUT, फ़ंक्शन / विधि का उपयोग करने की अनुमति है। तुम्हारा कॉल।
- डिफ़ॉल्ट ढीले निषिद्ध हैं।
- यदि संभव हो, तो कृपया अपने कोड (यानी TIO ) के लिए एक परीक्षण के साथ एक लिंक जोड़ें ।
- साथ ही, आपके उत्तर के लिए स्पष्टीकरण जोड़ने की अत्यधिक अनुशंसा की जाती है।
परीक्षण के मामलों:
इनपुट-मैट्रिक्स 1:
Input-matrix (for the following eight test cases):
[[ 1, 3, 5, 7],
[ 0, 8, 6, 4],
[ 1, 1, 1, 1],
[ 1,25, 0,75]]
Input-folding option: left-to-right
Output: [[2,6],[-2,4],[0,0],[-25,74]]
Input-folding option: right-to-left
Output: [[-6,-2],[-4,2],[0,0],[-74,25]]
Input-folding option: top-to-bottom
Output: [[1,-7,-5,-3],[0,22,-5,68]]
Input-folding option: bottom-to-top
Output: [[0,-22,5,-68],[-1,7,5,3]]
Input-folding option: topleft-to-bottomright
Output: [[7],[6,-1],[1,-7,-2],[1,24,0,74]]
Input-folding option: topright-to-bottomleft
Output: [[1],[-3,8],[-4,-5,1],[-6,21,-1,75]]
Input-folding option: bottomleft-to-topright
Output: [[1,3,4,6],[8,5,-21],[1,1],[75]]
Input-folding option: bottomright-to-topleft
Output: [[-74,2,1,7],[0,7,6],[-24,1],[1]]
इनपुट-मैट्रिक्स 2:
Input-matrix (for the following eight test cases):
[[17, 4, 3],
[ 8, 1,11],
[11, 9, 7]]
Input-folding option: left-to-right
Output: [[4,-14],[1,3],[9,-4]]
Input-folding option: right-to-left
Output: [[14,4],[-3,1],[4,9]]
Input-folding option: top-to-bottom
Output: [[8,1,11],[-6,5,4]]
Input-folding option: bottom-to-top
Output: [[6,-5,-4],[8,1,11]]
Input-folding option: topleft-to-bottomright
Output: [[3],[1,7],[11,1,-10]]
Input-folding option: topright-to-bottomleft
Output: [[17],[4,1],[8,-2,7]]
Input-folding option: bottomleft-to-topright
Output: [[17,-4,-8],[1,2],[7]]
Input-folding option: bottomright-to-topleft
Output: [[10,-7,3],[-1,1],[11]]
A-Za-z
या श्रेणी में किसी भी पूर्णांक का उपयोग कर सकते हैं [-999,999]
, इसलिए आदेश कोई फर्क नहीं पड़ता। और क्षमा करें, लेकिन आपको इनपुट के आधार पर सही गुना आउटपुट करना होगा, इसलिए सभी आठों को आउटपुट करने की अनुमति नहीं है।