Ошибка.
Попробуйте повторить позже
У исполнителя Составь_план_подготовки_в_закрытой_группе есть команды:
1. Прибавить
2. Умножить на
Какое число будет выведено в результате работы программы при исходном числе ?
(план подготовки и правда нужно составить, если еще не сделал этого)
def f(x, code): if code == ’1’: return x + 2 if code == ’2’: return x * 2 n = 6 for c in ’212122’: n = f(n, c) print(n)
Ошибка.
Попробуйте повторить позже
На вход алгоритма подаётся натуральное число . Алгоритм строит по нему новое число следующим образом.
1) Строится шестнадцатеричная запись числа , где «» — операция деления нацело.
2) К этой записи дописывается еще три разряда по следующему правилу:
а) если не делится на 4, то слева к нему приписывается «», а справа «».
б) в противном случае слева приписывается «», а справа «».
Например, .
Полученная таким образом запись (в ней на три разряда больше, чем в записи исходного числа ) является шестнадцатеричной записью искомого числа .
Укажите наибольшее число , для которого результат работы алгоритма меньше . В ответ запишите это число в десятичной системе счисления.
x = n
s = ’’
while x > 0:
h = x % 16
if h > 9:
s = chr(55 + h) + s # По табличке ASCII
else:
s = str(h) + s
x //= 16
return s
for i in range(1000000, 0, -1):
s = f_16(i // 2)
if i % 4 != 0: s = ’F’ + s + ’A0’
else: s = ’15’ + s + ’C’
if int(s, 16) < 1048576:
print(i)
break
Ошибка.
Попробуйте повторить позже
У исполнителя АТЛАНТ две команды, которым присвоены номера:
1. Вычти 2
2. Умножь на 3
Первая из них уменьшает число на экране на 2, вторая – увеличивает его в три раза.
Запишите порядок команд в программе получения из числа 4 число 304, содержащей не более 6 команд, указывая лишь номера команд.
s = ’0’ * (6 - len(bin(i)[2::])) + bin(i)[2::] # Добавление незначащих
# нулей
summa = 4
for j in s:
if j == ’0’:
summa -= 2
if j == ’1’:
summa *= 3
if summa == 304:
print(s, summa)
Ошибка.
Попробуйте повторить позже
У исполнителя Математик есть две команды:
1. Прибавить 3,
2. Умножить на 2.
Первая команда увеличивает число на 3, а вторая удваивает его.
Запишите порядок команд в программе преобразования числа 2 в число 52, содержащей не более 5 команд, указывая лишь номера команд. Если таких программ более одной, то запишите любую из них.
s = ’0’ * (5 - len(bin(i)[2::])) + bin(i)[2::] # Добавление незначащих
# нулей
summa = 2
for j in s:
if j == ’0’:
summa += 3
if j == ’1’:
summa *= 2
if summa == 52:
print(s, summa)
Ошибка.
Попробуйте повторить позже
Исполнитель КВАДРАТОР имеет две команды, которым присвоены номера:
1. умножь на
2. прибавь
Выполняя команду номер , КВАДРАТОР умножает число на экране на , а выполняя команду номер , прибавляет к этому числу . Напишите программу, содержащую не более команд, которая из числа , не проходя через числа и , получает число . Укажите лишь номера команд.
s = ’0’ * (4 - len(bin(i)[2::])) + bin(i)[2::] # Добавление незначащих
# нулей
flag = True # Проверка на попадание на 7 или 8
summa = 3
for j in s:
if j == ’0’:
summa *= 2
if j == ’1’:
summa += 2
if summa in [7, 8]:
flag = False
if flag and summa == 40:
print(s)
Ошибка.
Попробуйте повторить позже
Исполнитель КВАДРАТОР имеет две команды, которым присвоены номера:
1. умножь на
2. прибавь
Выполняя команду номер , КВАДРАТОР умножает число на экране на , а выполняя команду номер , прибавляет к этому числу . Напишите программу, содержащую не более команд, которая из числа , не проходя через числа и , получает число . Укажите лишь номера команд.
def f(a, b, commands): if a > b or len(commands) > 4 or a == 7 or a == 8: return 0 if a == b: print(commands) return 1 return f(a * 2, b, commands + ’1’) + f(a + 2, b, commands + ’2’) f(3, 16, ’’)
Ошибка.
Попробуйте повторить позже
У исполнителя АТЛАНТ две команды, которым присвоены номера:
- Вычти ;
- Умножь на .
Первая из них уменьшает число на экране на , вторая – увеличивает его в три раза.
Запишите порядок команд в программе получения из числа числа , содержащей не более команд, указывая лишь номера команд.
Решение кодом
for k1 in (’120’): for k2 in (’120’): for k3 in (’120’): for k4 in (’120’): for k5 in (’120’): for k6 in (’120’): s = k1 + k2 + k3 + k4 + k5 + k6 start = 4 for x in s: if x == ’1’: start -= 2 if x == ’2’: start *= 3 else: start += 0 if start == 50: print(s)
Если бы вышли нули, мы бы их просто не записали в последовательность, так как они не несут в себе действия. Добавили их, чтобы учесть, что может быть меньше команд.
Решение аналитически
Представим, что нам надо получить из число обратными командами, то есть прибавить и поделить на . Прибавляем к число два раза, получаем , делим его на , получаем , еще раз делим на , получаем , делим на , получаем , прибавляем , получаем . Получается: . Эту последовательность надо развернуть, так как команды были обратные. Ответ: .
Ошибка.
Попробуйте повторить позже
Исполнитель обезьянка живет на числовой оси. Начальное положение обезьянки точка 0. Система команд исполнителя:
1. Вверх k;
2. Вниз 3;
Определите наименьшее число k ( k > 1 ), если при конечном положении 16 команда (2) встречалась в программе минимум 3 раза.
Пусть – количество команд (1), а – количество команд (2). Тогда верно равенство:
Так как команда (2) встречалась в программе минимум 3 раза - то есть 3 или больше, попробуем найти такие и , чтобы было минимальным и больше 1.
Попробуем :
, при .
Попробуем : тогда , что не имеет решений, так как натуральное.
Попробуем : тогда и всё работает. Значит, ответ .
Ошибка.
Попробуйте повторить позже
У исполнителя прибавлятор есть 2 команды:
1. Прибавить к числу 2
2. Прибавит к числу 1
Напишите для него программу ,состоящую из номеров команд, которая переводит число 4 в 11 за 4
команды.
Одним из оптимальных методов решения является написание программы шаг зашагом приближающей число к ответу. По началу выполняем командыувеличивающие число на наибольшую возможную величину, в данном случаепри помощи первой команды. Так прибавляя трижды по 2 доходим до 10,после чего необходимо прибавить только единицу. В данном заданиинесколько вариантов правильных комбинаций команд т. к. ихпоследовательность не имеет значения.
Ошибка.
Попробуйте повторить позже
Исполнитель обезьянка живет на числовой оси. Начальное положение обезьянки точка 0. Система команд исполнителя:
1. Вверх k;
2. Вверх 2;
Определите наименьшее число k ( k > 1 ), если при конечном положении 163 команда (2) встречалась в программе минимум 10 раз.
Пусть – количество команд (1), а – количество команд (2). Тогда верно равенство:
;
;
Попробуем взять минимальное , тогда , при всех справа будет нечетное число, а слева мы нечетное никак не получим, значит не подходит.
Возьмем , тогда – можно взять, например , , значит - ответ
Ошибка.
Попробуйте повторить позже
Исполнитель обезьянка живет на числовой оси. Начальное положение обезьянки точка 0. Система команд исполнителя:
1. Вверх k;
2. Вверх 4;
Определите наименьшее число k ( k > 1 ), если при конечном положении 101 команда (2) встречалась в программе минимум 5 раз.
Пусть – количество команд (1), а – количество команд (2). Тогда верно равенство:
;
;
Т.к. данное выражение может быть верным при хотя бы 5, подставим его в выражение. Тогда . Откуда – делитель числа . Значит, . Т.к по условию необходимо найти минимальное , которое больше единицы, выбираем .
Ошибка.
Попробуйте повторить позже
Исполнитель обезьянка живет на числовой оси. Начальное положение обезьянки точка 0. Система команд исполнителя:
1. Вверх k;
2. Вверх 3;
Определите наименьшее число k ( k > 1 ), если при конечном положении 34 команда (2) встречалась в программе минимум 3 раза.
Пусть – количество команд (1), а – количество команд (2). Тогда верно равенство:
;
;
Попробуем взять минимальное , тогда — возьмем, например, , , значит - ответ
Ошибка.
Попробуйте повторить позже
Исполнитель обезьянка живет на числовой оси. Начальное положение обезьянки точка 0. Система команд исполнителя:
1. Вверх k;
2. Вниз 10;
Определите наименьшее число k ( k > 1 ), если при конечном положении 19 команда (2) встречалась в программе минимум 3 раза.
Пусть – количество команд (1), а – количество команд (2). Тогда верно равенство:
;
;
Попробуем взять минимальное , тогда , при всех справа будет нечетное число, а слева мы нечетное никак не получим, значит не подходит.
Возьмем , тогда – можно взять, например , , значит - ответ
Ошибка.
Попробуйте повторить позже
Исполнитель обезьянка живет на числовой оси. Начальное положение обезьянки точка 0. Система команд исполнителя:
1. Вверх k;
2. Вниз 4;
Определите наименьшее число k ( k > 1 ), если при конечном положении 3 команда (2) встречалась в программе минимум 3 раза.
Пусть – количество команд (1), а – количество команд (2). Тогда верно равенство:
;
;
Т.к. данное выражение может быть верным при хотя бы 3, подставим его в выражение. Тогда . Откуда – делитель числа . Значит, . Т.к по условию необходимо найти минимальное , которое больше единицы, выбираем .
Ошибка.
Попробуйте повторить позже
Исполнитель обезьянка живет на числовой оси. Начальное положение обезьянки точка 0. Система команд исполнителя:
1. Вверх k;
2. Вниз 8;
Определите наименьшее число k ( k > 1 ), если при конечном положении 4 команда (2) встречалась в программе минимум 4 раза.
Пусть – количество команд (1), а – количество команд (2). Тогда верно равенство:
;
;
Т.к. данное выражение может быть верным при хотя бы 4, подставим его в выражение. Тогда . Откуда – делитель числа . Значит, . Т.к по условию необходимо найти минимальное , которое больше единицы, выбираем .
Ошибка.
Попробуйте повторить позже
Исполнитель обезьянка живет на числовой оси. Начальное положение обезьянки точка . Система команд исполнителя:
- Вверх ;
- Вниз .
Определите наименьшее натуральное число (), если при конечном положении команда () встречалась в программе ровно раз.
Пусть – количество команд (1), а – количество команд (2). Тогда верно равенство:
;
;
Т.к. данное выражение может быть верным при равным 6, подставим его в выражение. Тогда . Откуда – делитель числа . Значит, . Т.к по условию необходимо найти минимальное , которое больше единицы, выбираем .
Решение программой:
for k in range(2, 100): fl = 0 for x in range(100): if (k * x - 11 * 6 == 15): fl = 1 a = k if fl: print(a) break
Ошибка.
Попробуйте повторить позже
Исполнитель обезьянка живет на числовой оси. Начальное положение обезьянки точка 0. Система команд исполнителя:
1. Вверх k;
2. Вниз 2;
Определите наименьшее число k ( k > 1 ), если при конечном положении 15 команда (2) встречалась в программе минимум 2 раза.
Пусть – количество команд (1), а – количество команд (2). Тогда верно равенство:
;
;
Попробуем взять минимальное , тогда , при всех справа будет нечетное число, а слева мы нечетное никак не получим, значит не подходит.
Возьмем , тогда – можно взять, например , , значит - ответ
Ошибка.
Попробуйте повторить позже
Исполнитель обезьянка живет на числовой оси. Начальное положение обезьянки точка 0. Система команд исполнителя:
1. Вверх k;
2. Вниз 3;
Определите наименьшее число k ( k > 1 ), если при конечном положении 70 команда (2) встречалась в программе минимум 5 раз.
Пусть – количество команд (1), а – количество команд (2). Тогда верно равенство:
;
;
Попробуем взять минимальное , тогда — возьмем, например, , , значит - ответ
Ошибка.
Попробуйте повторить позже
Исполнитель обезьянка живет на числовой оси. Начальное положение обезьянки точка 0. Система команд исполнителя:
1. Вверх k;
2. Вниз 4;
Определите наименьшее число k ( k > 1 ), если при конечном положении 91 команда (2) встречалась в программе минимум 2 раза.
Пусть – количество команд (1), а – количество команд (2). Тогда верно равенство:
;
;
Т.к. данное выражение может быть верным при хотя бы 2, подставим его в выражение. Тогда . Откуда – делитель числа . Значит, . Т.к по условию необходимо найти минимальное , которое больше единицы, выбираем .
Ошибка.
Попробуйте повторить позже
Исполнитель обезьянка живет на числовой оси. Начальное положение обезьянки точка 0. Система команд исполнителя:
1. Вверх k;
2. Вниз 7;
Определите наименьшее число k ( k > 1 ), если при конечном положении 56 команда (2) встречалась в программе минимум 3 раза.
Пусть – количество команд (1), а – количество команд (2). Тогда верно равенство:
;
;
Попробуем взять минимальное , тогда — возьмем, например, , , значит - ответ