Проблемы Python: создание списка с битовым серым кодом ширины

Проблемы Python — 1: Упражнение 57 с решением

Из Википедии,
Отраженный двоичный код (RBC), также известный как отраженный двоичный код (RB) или Код Грея после Фрэнка Грея — это такой порядок в двоичной системе счисления, что два последовательных значения отличаются только одним битом (двоичной цифрой). Отраженный двоичный код был первоначально разработан для предотвращения паразитных выходных сигналов от электромеханических переключателей. Сегодня коды Грея широко используются для облегчения исправления ошибок в цифровой связи, такой как цифровое наземное телевидение и некоторые системы кабельного телевидения.

Напишите программу на Python для создания списка с битовым кодом Грея шириной.

Пример решения :

Код Python:

  def binaryString (n, w = 0): "" "Ссылка: https://bit.ly/3cWJD22 возвращает двоичное представление 'n' в виде строки шириной 'w'. >>>  binaryString (6) '110' >>> binaryString (3,4) '0011' "" "из коллекции импортирует deque bits = deque (), а n> 0: bits.appendleft (('0', '1') [  n & 1]) n >> = 1, а len (биты) >> серый (1) ['0', '1'] >>> серый (2) ['00', '01', '11', '10  '] >>> серый (3) [' 000 ',' 001 ',' 011 ',' 010 ',' 110 ',' 111 ',' 101 ',' 100 '] "" "return [binaryString (n  ^ (n >> 1), ширина) для n в диапазоне (2 ** ширина)] print (серый (2)) print (" n", серый (3)) print (" n", серый (4)  ))  

Пример вывода:

 ['00', '01', '11', '10'] ['000', '  001, 011, 010, 110, 111, 101, 100  ] ['0000', '0001', '0011', '0010', '0110', '0111', '0101', '0100', '1100', '1101', '1111', '1110',  '1010', '1011', '1001', '1000'] 

Блок-схема:

Редактор кода Python:

Оцените статью
nanomode.ru
Добавить комментарий