N비트 그레코드 생성

1620 단어

반복 생성 부호표


이런 방법은 그레이 코드가 반사 코드라는 사실에 근거하여 다음과 같은 규칙을 이용하여 구성한다.
1위 그레코드는 두 글자가 있어요.

(n+1)비트 그레코딩 중 앞 2
n개의 코드는 n위 그레이 코드의 코드와 같고, 순서대로 쓰고, 접두사를 붙여서 0

(n+1)비트 그레코드의 후2
n개의 부호는 n위 그레이 부호와 같은 부호로 역순으로 쓰고 접두사를 붙인다
[3]  

n+1위 그레코딩 집합 = n위 그레코딩 집합 (순서) 접두사 추가 0 + n위 그레코딩 집합 (역순서) 접두사 추가 1

2위 그레코
3위 그레코
4위 그레코
4비트 자연 바이너리
00
01
십일

000
001
011
010
110
111
101

0000
0001
0011
0010
0110
0111
0101
0100
1100
1101
1111
1110
1010
1011
1001

0000
0001
0010
0011
0100
0101
0110
0111

1001
1010
1011
1100
1101
1110
1111
N비트 길이의 그레이 코드를 모두 생성한다는 뜻입니다. 자바는 다음과 같습니다.
public class GrayCode {
	public static String[] getGray(int n) {
		if (n == 1) {
			String[] result = new String[2];
			result[0] = "0";
			result[1] = "1";
			return result;
		} else {
			String[] temp = getGray(n - 1);
			String[] result = new String[temp.length * 2];
			for (int i = 0; i < temp.length; i++) {
				result[i] = "0" + temp[i];
			}
			for (int i = 0; i < temp.length; i++) {
				result[i + temp.length] = "1" + temp[temp.length - i - 1];
			}
			return result;
		}
	}

	public static void main(String[] args) {
		for (String tmp : getGray(3)) {
			System.out.println(tmp);
		}
	}
}

좋은 웹페이지 즐겨찾기