परिचय
एक ग्रे कोड द्विआधारी प्रतिनिधित्व का एक विकल्प है जिसमें बिट की एक परिवर्तनीय राशि के बजाय केवल एक बिट टॉगल करके एक संख्या बढ़ाई जाती है। उनके दशमलव और द्विआधारी समकक्षों के साथ कुछ ग्रे कोड यहां दिए गए हैं:
decimal | binary | gray
-------------------------
0 | 0 | 0
-------------------------
1 | 1 | 1
-------------------------
2 | 10 | 11
-------------------------
3 | 11 | 10
-------------------------
4 | 100 | 110
-------------------------
5 | 101 | 111
-------------------------
6 | 110 | 101
-------------------------
7 | 111 | 100
-------------------------
8 | 1000 | 1100
-------------------------
9 | 1001 | 1101
-------------------------
10 | 1010 | 1111
-------------------------
11 | 1011 | 1110
-------------------------
12 | 1100 | 1010
-------------------------
13 | 1101 | 1011
-------------------------
14 | 1110 | 1001
-------------------------
15 | 1111 | 1000
एक ग्रे कोड का चक्रीय बिट पैटर्न
कभी-कभी "प्रतिबिंबित बाइनरी" कहा जाता है, एक समय में केवल एक बिट को बदलने की संपत्ति आसानी से कम से कम महत्वपूर्ण बिट से शुरू होने वाले प्रत्येक कॉलम के लिए चक्रीय बिट पैटर्न के साथ प्राप्त की जाती है:
bit 0: 0110011001100110011001100110011001100110011001100110011001100110
bit 1: 0011110000111100001111000011110000111100001111000011110000111100
bit 2: 0000111111110000000011111111000000001111111100000000111111110000
bit 3: 0000000011111111111111110000000000000000111111111111111100000000
bit 4: 0000000000000000111111111111111111111111111111110000000000000000
bit 5: 0000000000000000000000000000000011111111111111111111111111111111
...और इसी तरह।
लक्ष्य
एक ग्रे कोड के गैर-गद्देदार इनपुट स्ट्रिंग को देखते हुए, अनुक्रम में एक ही चरित्र को वैकल्पिक करके या 1
(जब 2 की अगली शक्ति में वृद्धि) को बढ़ाकर ग्रे कोड बढ़ाएँ , तो परिणाम को गैर-पैडल ग्रे कोड के रूप में आउटपुट करें।
चेतावनियां
0
इनपुट के रूप में खाली स्ट्रिंग लेने या लेने की चिंता न करें ।- सबसे कम इनपुट होगा
1
, और पर्यावरण द्वारा लगाए गए स्मृति सीमाओं के अलावा स्ट्रिंग की लंबाई के लिए कोई ऊपरी-बाध्य नहीं है। - गैर-गद्देदार स्ट्रिंग द्वारा, मेरा मतलब है कि कोई अग्रणी या अनुगामी व्हाट्सएप नहीं होगा (एक वैकल्पिक अनुगामी न्यूलाइन के अलावा), और
0
इनपुट या आउटपुट में कोई अग्रणी नहीं है ।
I / O प्रारूप
इनपुट और आउटपुट के लिए निम्न प्रारूप स्वीकार किए जाते हैं, लेकिन अन्य स्वरूपों में तार को प्रोत्साहित किया जाता है:
- सबसे महत्वपूर्ण "बिट" पहले
- गैर गद्देदार चरित्र सरणी या ASCII
'1'
s और'0'
s का तार - गैर-गद्देदार पूर्णांक सरणी के
1
s और0
s - गैर-गद्देदार बूलियन सरणी
क्या अनुमति नहीं है:
- कम से कम महत्वपूर्ण "बिट" पहले
- दशमलव, बाइनरी या अनियारी पूर्णांक
- निश्चित-लंबाई डेटा-संरचना
- चरित्र या गैर-मुद्रण योग्य ASCII सूचकांकों की स्ट्रिंग
1
और0
टेस्ट
input -> output
1 -> 11
11 -> 10
111 -> 101
1011 -> 1001
1111 -> 1110
10111 -> 10110
101100 -> 100100
100000 -> 1100000
अनुरोध द्वारा अधिक परीक्षण जोड़े जा सकते हैं।
मानदंड
यह कोड-गोल्फ है , इसलिए बाइट्स जीत में सबसे छोटा कार्यक्रम है! पहले के सबमिशन के पक्ष में सभी संबंध टूट जाएंगे; मानक खामियों लागू होते हैं। सबसे अच्छा प्रस्तुत उत्तर 9 अक्टूबर, 2016 को स्वीकार किया जाएगा और जब भी बेहतर उत्तर दिए जाएंगे, अपडेट किया जाएगा।
0011
लिए