소개
그레이 코드 번호는 한 비트 만이 아닌 비트의 가변 량을 전환하여 증가하는 바이너리 표현에 대한 대안이다. 다음은 십진수 및 이진수에 해당하는 회색 코드입니다.
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
입력 또는 출력에 선행 s가 없습니다 .
I / O 형식
다음 형식은 입력 및 출력에 허용되는 형식이지만 다른 형식보다 문자열을 사용하는 것이 좋습니다.
- 가장 중요한 "비트"먼저
- 패딩되지 않은 문자 배열 또는 ASCII
'1'
및'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
요청에 따라 더 많은 테스트를 추가 할 수 있습니다.
기준
이것은 code-golf 이므로 바이트 단위의 가장 짧은 프로그램이 승리합니다! 이전의 제출물을 선호함으로써 모든 유대 관계가 깨질 것입니다. 표준 허점이 적용됩니다. 최고의 답변은 2016 년 10 월 9 일에 수락되며 더 나은 답변이 제공 될 때마다 업데이트됩니다.
0011
를 들어 8