2^bits секторами, и у каждого сектора свой код — число от 0 до 2^bits - 1. Чтобы датчик не ошибался на границах, коды соседних секторов (включая последний и первый) должны отличаться ровно одним битом.
Такую последовательность строят отражением:
1. начинаем со списка [0];
2. для каждого бита k = 0, 1, …, bits - 1 дописываем в конец текущий список в обратном порядке, включив в каждом числе бит k.
Верните получившийся список из 2^bits чисел ровно в этом порядке.bits=2 → [0, 1, 3, 2]
Начинаем с [0]. Шаг для бита 0: зеркало [0] с битом 0 → [0, 1]. Шаг для бита 1: зеркало [1, 0] с битом 1 → [3, 2], итого [0, 1, 3, 2] — в двоичном виде 00, 01, 11, 10.
bits=3 → [0, 1, 3, 2, 6, 7, 5, 4]
К [0, 1, 3, 2] дописываем то же в обратном порядке с включённым битом 2: 2+4, 3+4, 1+4, 0+4.
bits=2
[0, 1, 3, 2]
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 14 тестов на сервере, включая скрытые.