Формальное исполнение простого алгоритма, записанного на естественном языке, или умение создавать линейный алгоритм для формального исполнителя с ограниченным набором команд, или умение восстанавливать исходные данные линейного алгоритма по результатам его работы · 26 заданий
- Задание №5№5
На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом: 1) Строится двоичная запись числа N. 2) Далее…
Анализ алгоритмов и исполнители
- Задание №5№5
На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом. 1) Строится двоичная запись числа N. 2) Далее…
Анализ алгоритмов и исполнители
- Задание №5№5
На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом. 1) Строится двоичная запись числа N. 2) К это…
Анализ алгоритмов и исполнители
- Задание №5№5
На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом: 1) Строится двоичная запись числа N. 2) Кажды…
Анализ алгоритмов и исполнители
- Задание №5№5
На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом: 1) Строится двоичная запись числа N. 2) Кажды…
Анализ алгоритмов и исполнители
- Задание №5№5
На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом: 1) Из числа N вычитается остаток от деления N…
Анализ алгоритмов и исполнители
- Задание №5№5
На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом: 1) Из числа N вычитается остаток от деления N…
Анализ алгоритмов и исполнители
- Задание №5№5
На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом: 1) Строится двоичная запись числа N. 2) Далее…
Анализ алгоритмов и исполнители
- Задание №5№5
Автомат получает на вход трёхзначное число. По этому числу строится новое число по следующим правилам: 1) Вычисляются суммы квадратов первой и второй,…
Анализ алгоритмов и исполнители
- Задание №5№5
На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом. 1) Строится четверичная запись числа N. 2) Да…
Анализ алгоритмов и исполнители
- Задание №5№5
На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом. 1) Строится четверичная запись числа N. 2) Да…
Анализ алгоритмов и исполнители
- Задание №5№5
На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом. 1) Строится четверичная запись числа N. 2) Да…
Анализ алгоритмов и исполнители
На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом:
1) Строится двоичная запись числа N.
2) Далее эта запись обрабатывается по следующему правилу:
а) если количество значащих цифр в двоичной записи числа чётное, то к этой записи в середину дописывается 1;
б) если количество значащих цифр в двоичной записи числа нечётное, то запись не изменяется.
Полученная таким образом запись является двоичной записью искомого числа R.
Например, для исходного числа 510 = 1012 результатом является число 1012 = 510, а для исходного числа 210 = 102 результатом является число 1102 = 610.
Укажите минимальное число N, после обработки которого с помощью этого алгоритма получается число R, не меньшее, чем 26. В ответе запишите это число в десятичной системе счисления.
Правильный ответ
12
Пояснение
Решение:
Если количество разрядов двоичной записи N нечётно, запись не меняется и R=N. Если чётно — в середину вставляется 1.
Ищем наименьшее N, при котором R≥26.
Числа N≤7 записываются не более чем тремя разрядами, поэтому R содержит не более трёх разрядов и R≤7 — мало. Числа от 8 до 15 записываются четырьмя разрядами, вставка даёт пятиразрядную запись:
- N=8=10002→101002=20;
- N=9=10012→101012=21;
- N=10=10102→101102=22;
- N=11=10112→101112=23;
- N=12=11002→111002=28≥26 — подходит.
Все меньшие числа дают R<26, поэтому искомое наименьшее N равно 12.
def alg(n):
b = bin(n)[2:]
if len(b) % 2 == 0:
b = b[:len(b) // 2] + '1' + b[len(b) // 2:]
return int(b, 2)
print(min(n for n in range(1, 1000) if alg(n) >= 26))
Ответ: 12