Тема 5. Простейшие исполнители и алгоритмы

5.04 Нестандартные задачи

Вспоминай формулы по каждой теме
Решай новые задачи каждый день
Вдумчиво разбирай решения
ШКОЛКОВО.
Готовиться с нами - ЛЕГКО!
Подтемы раздела простейшие исполнители и алгоритмы
Решаем задачи

Ошибка.
Попробуйте повторить позже

Задача 21#7122Максимум баллов за задание: 1

Исполнитель обезьянка живет на числовой оси. Начальное положение обезьянки точка 0. Система команд исполнителя:

1. Вверх k;

2. Вниз 4;

Определите наименьшее число k ( k > 1 ), если при конечном положении 18 команда (2) встречалась в программе минимум 3 раза.

Показать ответ и решение

Пусть x  – количество команд (1), а y  – количество команд (2). Тогда верно равенство:

kx − 4y = 18;

kx = 18 + 4y;

Т.к. данное выражение может быть верным при y  хотя бы 3, подставим его в выражение. Тогда kx =  30  . Откуда k  – делитель числа 30  . Значит, K =  {1,2,3,5,6, 10,15,30}.  Т.к по условию необходимо найти минимальное k,  которое больше единицы, выбираем K  =  2.

Ответ: 2

Ошибка.
Попробуйте повторить позже

Задача 22#7123Максимум баллов за задание: 1

Исполнитель обезьянка живет на числовой оси. Начальное положение обезьянки точка 0. Система команд исполнителя:

1. Вверх k;

2. Вниз 2;

Определите наименьшее число k ( k > 1 ), если при конечном положении 19 команда (2) встречалась в программе минимум 4 раза.

Показать ответ и решение

Пусть x  – количество команд (1), а y  – количество команд (2). Тогда верно равенство:

kx − 2y = 19  ;

kx = 19 + 2y  ;

Т.к. данное выражение может быть верным при y  хотя бы 4, подставим его в выражение. Тогда kx =  27  . Откуда k  – делитель числа 27  . Значит, K  =  {1,3,9,27} . Т.к по условию необходимо найти минимальное k  , которое больше единицы, выбираем K  = 3  .

Ответ: 3

Ошибка.
Попробуйте повторить позже

Задача 23#7124Максимум баллов за задание: 1

Исполнитель обезьянка живет на числовой оси. Начальное положение обезьянки точка 0. Система команд исполнителя:

1. Вверх k;

2. Вниз 3;

Определите наименьшее число k ( k > 1 ), если при конечном положении 48 команда (2) встречалась в программе минимум 4 раза.

Показать ответ и решение

Пусть x  – количество команд (1), а y  – количество команд (2). Тогда верно равенство:

kx − 3y = 48  ;

kx = 48 + 3y  ;

Т.к. данное выражение может быть верным при y  хотя бы 4, подставим его в выражение. Тогда kx =  60  . Откуда k  – делитель числа 60  . Значит, K  = {1, 2,3,4,5,...,30,60 } . Т.к по условию необходимо найти минимальное k  , которое больше единицы, выбираем K  =  2  .

Ответ: 2

Ошибка.
Попробуйте повторить позже

Задача 24#7125Максимум баллов за задание: 1

Исполнитель обезьянка живет на числовой оси. Начальное положение обезьянки точка 0. Система команд исполнителя:

1. Вверх k;

2. Вниз 3;

Определите наименьшее число k ( k > 1 ), если при конечном положении 33 команда (2) встречалась в программе минимум 4 раза.

Показать ответ и решение

Пусть x  – количество команд (1), а y  – количество команд (2). Тогда верно равенство:

kx − 3y = 33  ;

kx = 33 + 3y  ;

Попробуем взять минимальное k = 2  , тогда 2x = 33 + 3y  — возьмем, например, x = 30  , y = 9  , значит 2  - ответ

Ответ: 2

Ошибка.
Попробуйте повторить позже

Задача 25#7126Максимум баллов за задание: 1

Исполнитель обезьянка живет на числовой оси. Начальное положение обезьянки точка 0. Система команд исполнителя:

1. Вверх k;

2. Вниз 7;

Определите наименьшее число k ( k > 1 ), если при конечном положении 56 команда (2) встречалась в программе минимум 3 раза.

Показать ответ и решение

Пусть x  – количество команд (1), а y  – количество команд (2). Тогда верно равенство:

kx − 7y = 56  ;

kx = 56 + 7y  ;

Попробуем взять минимальное k = 2  , тогда 2x = 56 + 7y  — возьмем, например, x = 63  , y = 10  , значит 2  - ответ

Ответ: 2

Ошибка.
Попробуйте повторить позже

Задача 26#7127Максимум баллов за задание: 1

Исполнитель обезьянка живет на числовой оси. Начальное положение обезьянки точка 0. Система команд исполнителя:

1. Вверх k;

2. Вниз 4;

Определите наименьшее число k ( k > 1 ), если при конечном положении 91 команда (2) встречалась в программе минимум 2 раза.

Показать ответ и решение

Пусть x  – количество команд (1), а y  – количество команд (2). Тогда верно равенство:

kx − 4y = 91  ;

kx = 91 + 2y  ;

Т.к. данное выражение может быть верным при y  хотя бы 2, подставим его в выражение. Тогда kx =  99  . Откуда k  – делитель числа 99  . Значит, K  = {1,3,9, 11,33,99} . Т.к по условию необходимо найти минимальное k  , которое больше единицы, выбираем K  =  3  .

Ответ: 3

Ошибка.
Попробуйте повторить позже

Задача 27#7128Максимум баллов за задание: 1

Исполнитель обезьянка живет на числовой оси. Начальное положение обезьянки точка 0. Система команд исполнителя:

1. Вверх k;

2. Вниз 3;

Определите наименьшее число k ( k > 1 ), если при конечном положении 70 команда (2) встречалась в программе минимум 5 раз.

Показать ответ и решение

Пусть x  – количество команд (1), а y  – количество команд (2). Тогда верно равенство:

kx − 3y = 70  ;

kx = 70 + 3y  ;

Попробуем взять минимальное k = 2  , тогда 2x = 70 + 3y  — возьмем, например, x = 50  , y = 10  , значит 2  - ответ

Ответ: 2

Ошибка.
Попробуйте повторить позже

Задача 28#7129Максимум баллов за задание: 1

Исполнитель обезьянка живет на числовой оси. Начальное положение обезьянки точка 0. Система команд исполнителя:

1. Вверх k;

2. Вниз 2;

Определите наименьшее число k ( k > 1 ), если при конечном положении 15 команда (2) встречалась в программе минимум 2 раза.

Показать ответ и решение

Пусть x  – количество команд (1), а y  – количество команд (2). Тогда верно равенство:

kx − 2y = 15  ;

kx = 15 + 2y  ;

Попробуем взять минимальное k = 2  , тогда 2x = 15 + 2y  , при всех y  справа будет нечетное число, а слева мы нечетное никак не получим, значит k = 2  не подходит.

Возьмем k = 3  , тогда 3x = 15 + 2y  – можно взять, например x = 11  , y = 9  , значит 3  - ответ

Ответ: 3

Ошибка.
Попробуйте повторить позже

Задача 29#7130Максимум баллов за задание: 1

Исполнитель обезьянка живет на числовой оси. Начальное положение обезьянки точка 0  . Система команд исполнителя:

  1. Вверх k  ;
  2. Вниз 11  .

Определите наименьшее натуральное число k  (k > 1  ), если при конечном положении 15  команда (2  ) встречалась в программе ровно 6  раз.

Показать ответ и решение

Пусть x  – количество команд (1), а y  – количество команд (2). Тогда верно равенство:

kx − 11y = 15  ;

kx = 15 + 11y  ;

Т.к. данное выражение может быть верным при y  равным 6, подставим его в выражение. Тогда kx =  81  . Откуда k  – делитель числа 81  . Значит, K =  {1,3,9,27,81 } . Т.к по условию необходимо найти минимальное k  , которое больше единицы, выбираем K  = 3  .

Решение программой:

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

Ответ: 3

Ошибка.
Попробуйте повторить позже

Задача 30#7131Максимум баллов за задание: 1

Исполнитель обезьянка живет на числовой оси. Начальное положение обезьянки точка 0. Система команд исполнителя:

1. Вверх k;

2. Вниз 8;

Определите наименьшее число k ( k > 1 ), если при конечном положении 4 команда (2) встречалась в программе минимум 4 раза.

Показать ответ и решение

Пусть x  – количество команд (1), а y  – количество команд (2). Тогда верно равенство:

kx − 8y = 4  ;

kx = 4 + 8y  ;

Т.к. данное выражение может быть верным при y  хотя бы 4, подставим его в выражение. Тогда kx =  36  . Откуда k  – делитель числа 36  . Значит, K  = {1, 2,3,4,6,9,12,18, 36} . Т.к по условию необходимо найти минимальное k  , которое больше единицы, выбираем K  =  2  .

Ответ: 2

Ошибка.
Попробуйте повторить позже

Задача 31#7132Максимум баллов за задание: 1

Исполнитель обезьянка живет на числовой оси. Начальное положение обезьянки точка 0. Система команд исполнителя:

1. Вверх k;

2. Вниз 4;

Определите наименьшее число k ( k > 1 ), если при конечном положении 3 команда (2) встречалась в программе минимум 3 раза.

Показать ответ и решение

Пусть x  – количество команд (1), а y  – количество команд (2). Тогда верно равенство:

kx − 4y = 3  ;

kx = 3 + 4y  ;

Т.к. данное выражение может быть верным при y  хотя бы 3, подставим его в выражение. Тогда kx =  15  . Откуда k  – делитель числа 15  . Значит, K  =  {1,3,5,15} . Т.к по условию необходимо найти минимальное k  , которое больше единицы, выбираем K  = 3  .

Ответ: 3

Ошибка.
Попробуйте повторить позже

Задача 32#7133Максимум баллов за задание: 1

Исполнитель обезьянка живет на числовой оси. Начальное положение обезьянки точка 0. Система команд исполнителя:

1. Вверх k;

2. Вниз 10;

Определите наименьшее число k ( k > 1 ), если при конечном положении 19 команда (2) встречалась в программе минимум 3 раза.

Показать ответ и решение

Пусть x  – количество команд (1), а y  – количество команд (2). Тогда верно равенство:

kx − 10y = 19  ;

kx = 19 + 10y  ;

Попробуем взять минимальное k = 2  , тогда 2x = 19 + 10y  , при всех y  справа будет нечетное число, а слева мы нечетное никак не получим, значит k = 2  не подходит.

Возьмем k = 3  , тогда 3x = 19 + 10y  – можно взять, например x = 23  , y = 5  , значит 3  - ответ

Ответ: 3

Ошибка.
Попробуйте повторить позже

Задача 33#7134Максимум баллов за задание: 1

Исполнитель обезьянка живет на числовой оси. Начальное положение обезьянки точка 0. Система команд исполнителя:

1. Вверх k;

2. Вверх 3;

Определите наименьшее число k ( k > 1 ), если при конечном положении 34 команда (2) встречалась в программе минимум 3 раза.

Показать ответ и решение

Пусть x  – количество команд (1), а y  – количество команд (2). Тогда верно равенство:

kx + 3y = 34  ;

kx = 34 − 3y  ;

Попробуем взять минимальное k = 2  , тогда 2x = 34 − 3y  — возьмем, например, x = 11  , y = 4  , значит 2  - ответ

Ответ: 2

Ошибка.
Попробуйте повторить позже

Задача 34#7135Максимум баллов за задание: 1

Исполнитель обезьянка живет на числовой оси. Начальное положение обезьянки точка 0. Система команд исполнителя:

1. Вверх k;

2. Вверх 4;

Определите наименьшее число k ( k > 1 ), если при конечном положении 101 команда (2) встречалась в программе минимум 5 раз.

Показать ответ и решение

Пусть x  – количество команд (1), а y  – количество команд (2). Тогда верно равенство:

kx + 4y = 101  ;

kx = 101 − 4y  ;

Т.к. данное выражение может быть верным при y  хотя бы 5, подставим его в выражение. Тогда kx =  81  . Откуда k  – делитель числа 81  . Значит, K =  {1,3,9,27,81 } . Т.к по условию необходимо найти минимальное k  , которое больше единицы, выбираем K  = 3  .

Ответ: 3

Ошибка.
Попробуйте повторить позже

Задача 35#7136Максимум баллов за задание: 1

Исполнитель обезьянка живет на числовой оси. Начальное положение обезьянки точка 0. Система команд исполнителя:

1. Вверх k;

2. Вверх 2;

Определите наименьшее число k ( k > 1 ), если при конечном положении 163 команда (2) встречалась в программе минимум 10 раз.

Показать ответ и решение

Пусть x  – количество команд (1), а y  – количество команд (2). Тогда верно равенство:

kx + 2y = 163  ;

kx = 163 − 2y  ;

Попробуем взять минимальное k = 2  , тогда 2x = 163 − 2y  , при всех y  справа будет нечетное число, а слева мы нечетное никак не получим, значит k = 2  не подходит.

Возьмем k = 3  , тогда 3x = 163 − 2y  – можно взять, например x = 41  , y = 20  , значит 3  - ответ

Ответ: 3

Ошибка.
Попробуйте повторить позже

Задача 36#7530Максимум баллов за задание: 1

У исполнителя прибавлятор есть 2 команды:
1. Прибавить к числу 2
2. Прибавит к числу 1
Напишите для него программу ,состоящую из номеров команд, которая переводит число 4 в 11 за 4 команды.

Показать ответ и решение

Одним из оптимальных методов решения является написание программы шаг зашагом приближающей число к ответу. По началу выполняем командыувеличивающие число на наибольшую возможную величину, в данном случаепри помощи первой команды. Так прибавляя трижды по 2 доходим до 10,после чего необходимо прибавить только единицу. В данном заданиинесколько вариантов правильных комбинаций команд т. к. ихпоследовательность не имеет значения.

Ответ: 1112 или любая другая комбинация этих команд

Ошибка.
Попробуйте повторить позже

Задача 37#7531Максимум баллов за задание: 1

Исполнитель обезьянка живет на числовой оси. Начальное положение обезьянки точка 0. Система команд исполнителя:

1. Вверх k;

2. Вниз 3;

Определите наименьшее число k ( k > 1 ), если при конечном положении 16 команда (2) встречалась в программе минимум 3 раза.

Показать ответ и решение

Пусть x  – количество команд (1), а y  – количество команд (2). Тогда верно равенство:

kx − 3y = 16;

kx = 16 + 3y;

Так как команда (2) встречалась в программе минимум 3 раза - то есть 3 или больше, попробуем найти такие x  и y  , чтобы k  было минимальным и больше 1.

Попробуем k = 2  :

2x − 3y = 16  , при y ≥ 3  .

Попробуем y = 3  : тогда 2x =  25  , что не имеет решений, так как x  натуральное.

Попробуем y = 4  : тогда x = 14  и всё работает. Значит, ответ k = 2  .

Ответ: 2

Ошибка.
Попробуйте повторить позже

Задача 38#25924Максимум баллов за задание: 1

У исполнителя АТЛАНТ две команды, которым присвоены номера:

  1. Вычти 2  ;
  2. Умножь на 3  .

Первая из них уменьшает число на экране на 2  , вторая – увеличивает его в три раза.

Запишите порядок команд в программе получения из числа 4  числа 50  , содержащей не более 6  команд, указывая лишь номера команд.

Показать ответ и решение

Решение кодом

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)

Если бы вышли нули, мы бы их просто не записали в последовательность, так как они не несут в себе действия. Добавили их, чтобы учесть, что может быть меньше 6  команд.

Решение аналитически

Представим, что нам надо получить из 50  число 4  обратными командами, то есть прибавить 2  (1)  и поделить на        3  (2)  . Прибавляем к 50  число 2  два раза, получаем 54  , делим его на 3  , получаем 18  , еще раз делим на 3  , получаем 6  , делим на 3  , получаем 2  , прибавляем 2  , получаем 4  . Получается: 112221  . Эту последовательность надо развернуть, так как команды были обратные. Ответ: 122211  .

Ответ: 122211

Ошибка.
Попробуйте повторить позже

Задача 39#26111Максимум баллов за задание: 1

Исполнитель КВАДРАТОР имеет две команды, которым присвоены номера:

1. умножь на 2

2. прибавь 2

Выполняя команду номер 1  , КВАДРАТОР умножает число на экране на 2  , а выполняя команду номер 2  , прибавляет к этому числу 2  . Напишите программу, содержащую не более 4  команд, которая из числа 3  , не проходя через числа 7  и 8  , получает число 16  . Укажите лишь номера команд.

Показать ответ и решение
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, ’’)

Ответ: 1122

Ошибка.
Попробуйте повторить позже

Задача 40#30275Максимум баллов за задание: 1

Исполнитель КВАДРАТОР имеет две команды, которым присвоены номера:

1. умножь на 2

2. прибавь 2

Выполняя команду номер 1  , КВАДРАТОР умножает число на экране на 2  , а выполняя команду номер 2  , прибавляет к этому числу 2  . Напишите программу, содержащую не более 4  команд, которая из числа 3  , не проходя через числа 7  и 8  , получает число 40  . Укажите лишь номера команд.

Показать ответ и решение
for i in range(16):  # При >= 16 уже 5 знаков  
    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)  

Ответ: 2111
Рулетка
Вы можете получить скидку в рулетке!