Вот код(на питоне):
def generate_gray_codes(n):
if n <= 0:
return []
elif n == 1:
return ['0', '1'] # Самый простой случай, когда у нас только один бит.
previous_codes = generate_gray_codes(n - 1) # Генерируем предыдущие коды Грея.
current_codes = []
for code in previous_codes:
current_codes.append('0' + code) # Добавляем бит '0' в начало каждого предыдущего кода.
for code in reversed(previous_codes): # Реверсируем и добавляем бит '1' для каждого предыдущего кода.
current_codes.append('1' + code)
return current_codes
n = 5 # Количество ламп, вы можете изменить это значение на любое большее или равное log2(15).
gray_codes = generate_gray_codes(n) # Генерируем коды Грея с 'n' битами.
# Печатаем первые 15 кодов Грея (0-14 в десятичной системе).
for i in range(15): # Мы хотим охватить до 14 сигналов, поэтому цикл от 0 до 14.
print(f"Сигнал {i}: {gray_codes[i]}")