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