재귀를 사용하여 그레이 코드를 생성해야 하는 경우 빈 목록을 만들고 값 0과 1을 추가하는 메서드가 정의됩니다. 여러 'for' 루프는 함수 내에서 그레이 코드를 생성하는 데 사용됩니다.
아래는 동일한 데모입니다 -
예시
import math as mt def generate_gray_list(my_val): if (my_val <= 0): return my_list = list() my_list.append("0") my_list.append("1") i = 2 j = 0 while(True): if i >= 1 << my_val: break for j in range(i - 1, -1, -1): my_list.append(my_list[j]) for j in range(i): my_list[j] = "0" + my_list[j] for j in range(i, 2 * i): my_list[j] = "1" + my_list[j] i = i << 1 for i in range(len(my_list)): print(my_list[i]) my_num = 3 print("The number is :") print(my_num) print("Method to convert gray code to binary is being called...") generate_gray_list(my_num)
출력
The number is : 3 Method to convert gray code to binary is being called... 000 001 011 010 110 111 101 100
설명
-
필요한 패키지를 가져옵니다.
-
빈 목록을 만드는 메서드가 정의되었습니다.
-
목록에 0과 1을 추가합니다.
-
여러 'for' 루프는 0과 2 범위 내에서 반복하는 데 사용됩니다.
-
왼쪽 시프트 연산자는 반복자에서 사용되며 숫자와 비교됩니다.
-
메소드 외부에서는 해당 매개변수를 전달하여 호출됩니다.
-
출력은 콘솔에 표시됩니다.