एक बारी संकेत मैट्रिक्स है एक n
से n
संख्या से मिलकर मैट्रिक्स -1, 0, 1, जैसे कि:
- प्रत्येक पंक्ति और स्तंभ का योग 1 है
- साइन में प्रत्येक पंक्ति और कॉलम वैकल्पिक में नॉनज़ेरो प्रविष्टियाँ
ये मैट्रिसेस क्रमपरिवर्तन मैट्रिसेस को सामान्य करते हैं, और n
कुछ समय के लिए इस तरह के मैट्रिसेस की संख्या कुछ समय के लिए ब्याज की थी। वे कंप्यूटिंग मैट्रिक्स निर्धारकों के डोड्सन संघनन विधि के दौरान स्वाभाविक रूप से होते हैं (चार्ल्स डोड्सन के नाम पर, जिसे लुईस कैरोल के रूप में जाना जाता है)।
यहां 4 बाय 4 अल्टरनेटिंग साइन मैट्रिसेस के कुछ उदाहरण दिए गए हैं:
0 1 0 0 1 0 0 0 0 0 1 0 0 0 1 0
0 0 1 0 0 0 1 0 0 1 -1 1 1 0 -1 1
1 0 0 0 0 1 -1 1 1 -1 1 0 0 1 0 0
0 0 0 1 0 0 1 0 0 1 0 0 0 0 1 0
और यहां 4 बाय 4 मैट्रिक्स के कुछ उदाहरण दिए गए हैं जो साइन मैट्रिक्स को अल्टरनेट नहीं कर रहे हैं:
0 1 0 0
0 0 0 1
1 0 0 0
0 0 1 -1 (last row and last column don't add to 1)
0 0 0 1
1 0 0 0
-1 1 1 0
1 0 0 0 (third row does not alternate correctly)
आपका कार्यक्रम या समारोह एक दिया जाएगा n
द्वारा n
मैट्रिक्स ( n >= 1
उत्पादन एक - -1s, 0s और 1s के) truthy मूल्य अगर दिया मैट्रिक्स एक बारी संकेत मैट्रिक्स है एक falsy मूल्य, अन्यथा उत्पादन।
यह कोड-गोल्फ है , इसलिए लक्ष्य उपयोग किए गए बाइट्स की संख्या को कम करना है।
परीक्षण के मामलों
निम्नलिखित परीक्षण मामलों को पायथन जैसे 2D सूची प्रारूप में दिया गया है।
Truthy:
[[1]]
[[1,0],[0,1]]
[[0,1],[1,0]]
[[0,1,0],[0,0,1],[1,0,0]]
[[0,1,0],[1,-1,1],[0,1,0]]
[[0,1,0,0],[0,0,1,0],[1,0,0,0],[0,0,0,1]]
[[1,0,0,0],[0,0,1,0],[0,1,-1,1],[0,0,1,0]]
[[0,0,1,0],[0,1,-1,1],[1,-1,1,0],[0,1,0,0]]
[[0,0,1,0],[1,0,-1,1],[0,1,0,0],[0,0,1,0]]
[[0,0,1,0,0],[0,1,-1,1,0],[1,-1,1,0,0],[0,1,0,-1,1],[0,0,0,1,0]]
[[0,0,1,0,0,0,0,0],[1,0,-1,0,1,0,0,0],[0,0,0,1,-1,0,0,1],[0,0,1,-1,1,0,0,0],[0,0,0,0,0,0,1,0],[0,0,0,0,0,1,0,0],[0,1,-1,1,0,0,0,0],[0,0,1,0,0,0,0,0]]
[[0,0,0,0,1,0,0,0],[0,0,1,0,-1,1,0,0],[0,0,0,1,0,0,0,0],[1,0,0,-1,1,-1,1,0],[0,1,-1,1,-1,1,0,0],[0,0,0,0,1,0,0,0],[0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,1]]
Falsy:
[[0]]
[[-1]]
[[1,0],[0,0]]
[[0,0],[0,1]]
[[-1,1],[1,0]]
[[0,1],[1,-1]]
[[0,0,0],[0,0,0],[0,0,0]]
[[0,1,0],[1,0,1],[0,1,0]]
[[-1,1,1],[1,-1,1],[1,1,-1]]
[[0,0,1],[1,0,0],[0,1,-1]]
[[0,1,0,0],[0,0,0,1],[1,0,0,0],[0,0,1,-1]]
[[0,0,1,0],[0,0,1,0],[1,0,-1,1],[0,1,0,0]]
[[0,0,0,1],[1,0,0,0],[-1,1,1,0],[1,0,0,0]]
[[1,0,1,0,-1],[0,1,0,0,0],[0,0,0,0,1],[0,0,0,1,0],[0,0,0,0,1]]
[[0,0,1,0,0],[0,1,-1,1,0],[1,-1,1,0,0],[0,1,1,-1,0],[0,0,-1,1,1]]
[[0,-1,0,1,1],[1,-1,1,-1,1],[0,1,1,0,-1],[1,1,-1,1,-1],[-1,1,0,0,1]]
[[0,0,1,0,0,0,0,0],[1,0,1,0,1,0,0,0],[0,0,0,1,-1,0,0,1],[0,0,1,-1,1,0,0,0],[0,0,0,0,0,0,1,0],[0,0,0,0,0,1,0,0],[0,1,-1,1,0,0,0,0],[0,0,1,0,0,0,0,0]]