Автомат обрабатывает натуральное число по следующему алгоритму:
- Строится восьмибитная двоичная запись числа
.
- Инвертируются разряды исходного числа (
заменяется на
,
на
).
- К полученному двоичному числу прибавляют единицу.
- Полученное число переводится в десятичную систему счисления.
Для какого числа результат работы алгоритма равен
?
Разряды инвертируются, нетрудно заметить, что в двоичной записи сумма восьмибитного числа и его инвертированной версии равна . Кроме того, мы знаем, что x+1 = 156. Значит, можем решить систему:
|
.
Решение программой:
for i in range(1, 128):
s = ’0’ * (8 - len(bin(i)[2::])) + bin(i)[2::]
x = ’’
for j in range(len(s)):
if s[j] == ’1’:
x += ’0’
else:
x += ’1’
if (int(x, 2) + 1) == 156:
print(i)
Ответ: 100