जब रीकर्सन की मदद से ग्रे कोड जनरेट करना हो, तो एक विधि परिभाषित की जाती है जो एक खाली सूची बनाती है और उसमें 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("संख्या है:")
print(my_num)
print("ग्रे कोड को बाइनरी में बदलने की विधि कॉल की जा रही है...")
generate_gray_list(my_num)
आउटपुट
संख्या है: 3 ग्रे कोड को बाइनरी में बदलने की विधि कॉल की जा रही है... 000 001 011 010 110 111 101 100
व्याख्या
आवश्यक पैकेज आयात किए जाते हैं।
एक विधि परिभाषित की जाती है जो एक खाली सूची बनाती है।
यह सूची में 0 और 1 जोड़ती है।
0 और 2 की रेंज में पुनरावृति के लिए कई 'for' लूप का उपयोग किया जाता है।
इटरेटर पर लेफ्ट शिफ्ट ऑपरेटर का उपयोग किया जाता है और इसकी तुलना संख्या से की जाती है।
विधि के बाहर, इसे प्रासंगिक पैरामीटर पास करके कॉल किया जाता है।
आउटपुट कंसोल पर प्रदर्शित होता है।