เมื่อจำเป็นต้องสร้างรหัสสีเทาโดยใช้การเรียกซ้ำ จะมีการกำหนดวิธีการที่สร้างรายการว่างและเพิ่มค่า 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
-
ใช้ตัวดำเนินการ shift ซ้ายบน iterator และเปรียบเทียบกับตัวเลข
-
นอกเมธอดจะเรียกโดยส่งพารามิเตอร์ที่เกี่ยวข้อง
-
เอาต์พุตจะแสดงบนคอนโซล