profile
Размещено 6 лет назад по предмету Информатика от sssquake

ЕГЭ 2019, не могу разобраться, помогите пожалуйста.

№22

Первая команда увеличивает число на экране на 1, вторая умножает его на 2. Программа для исполнителя Калькулятор – это последовательность команд.

Сколько существует программ, для которых при исходном числе 2 результатом является число 33 и при этом траектория вычислений содержит число 16 и не содержит числа 30?

Можете максимально подробно расписать решение, объяснить что к чему? Заранее спасибо.

  1. Ответ на вопрос
    Ответ на вопрос дан CrafterKolyan

    Ответ:

    22

    Объяснение:

    Понятно, что каждая из команд может только увеличить число.

    У нас обязательно есть число 16, из него есть два пути:

    1. сделать +1

    2. сделать x2

    Если мы сделаем +1, то после этого уже точно не сможем сделать x2, т.к. 17 x 2 =  34, а 34 > 33, а уменьшить число мы не сможем. Если мы будем делать постоянно +1, то мы точно пройдём через 30.

    Значит не нужно делать +1, когда мы на числе 16, а надо делать x2.

    Следовательно, концовка у нас точно будет такая 16 -> 32 -> 33.

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

    Считать сколькими способами можно получить 16 из 2 будет динамическим программированием.

    ans[i] - количество различных программ, которые получают i из 2.

    Очевидно, ans[2] = 1 (пустая программа).

    ans[3] = 1 (нужно сделать +1)

    ans[4] = ans[3] + ans[2] = 2 (можно сделать +1 к 3, а можно x2 к 2)

    Далее вычисления всегда следующие:

    ans[i] = ans[i - 1] + ans[i / 2] для чётных i (можно либо добавить +1 к числу i - 1, либо сделать x2 для числа i / 2)

    ans[i] = ans[i - 1] для нечётных i (можно получить только путём добавления +1 к числу i - 1)

    Итак, считаем:

    ans[2] = 1

    ans[3] = ans[2] = 1

    ans[4] = ans[3] + ans[2] = 2

    ans[5] = ans[4] = 2

    ans[6] = ans[5] + ans[3] = 4

    ans[7] = ans[6] = 4

    ans[8] = ans[7] + ans[4] = 6

    ans[9] = ans[8] = 6

    ans[10] = ans[9] + ans[5] = 8

    ans[11] = ans[10] = 8

    ans[12] = ans[11] + ans[6] = 12

    ans[13] = ans[12] = 12

    ans[14] = ans[13] + ans[7] = 16

    ans[15] = ans[14] = 16

    ans[16] = ans[15] + ans[8] = 22

    Значит 16 из 2 можно получить 22 способами. И столькими же способами можно получить 33 из 2 выполняя условия задачи.

Не тот ответ на вопрос, который вам нужен?
Найди верный ответ
Самые новые вопросы
tegysigalpa2012
Русский язык - 6 лет назад

Помогите решить тест по русскому языку тест по русскому языку «местоимение. разряды местоимений» для 6 класса 1. укажите личное местоимение: 1) некто 2) вас 3) ни с кем 4) собой 2. укажите относительное местоимение: 1) кто-либо 2) некоторый 3) кто 4) нам 3. укажите вопросительное местоимение: 1) кем-нибудь 2) кем 3) себе 4) никакой 4. укажите определительное местоимение: 1) наш 2) который 3) некий 4) каждый 5. укажите возвратное местоимение: 1) свой 2) чей 3) сам 4) себя 6. найдите указательное местоимение: 1) твой 2) какой 3) тот 4) их 7. найдите притяжательное местоимение: 1) самый 2) моего 3) иной 4) ничей 8. укажите неопределённое местоимение: 1) весь 2) какой-нибудь 3) любой 4) этот 9. укажите вопросительное местоимение: 1) сколько 2) кое-что 3) она 4) нами 10. в каком варианте ответа выделенное слово является притяжательным местоимением? 1) увидел их 2) её нет дома 3) её тетрадь 4) их не спросили

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.