У исполнителя удвоитель две команды . которым присвоены номера : 1: прибавь 3 2: умножь на 2 программа удвоителя - это последовательность команд. сколько есть программ. которые число 1 преобразуют в чсло 25.

Поляков Евгений Александрович

Учитель информатики высшей категории

Проверено учителем

Для преобразования числа 1 в число 25 существует 9 различных программ. ️ Шаг 1: Определение метода решения Для решения задачи воспользуемся методом динамического программирования. Обозначим через f(n)f of n количество способов получить число nn из числа 1. Поскольку исполнитель имеет две команды (+3 и ×2cross 2), то в любую точку nn можно прийти либо из точки n3n minus 3 (прибавлением 3), либо из точки n/2n / 2 (умножением на 2, если nn чётно). Рекуррентная формула: f(n)=f(n3)+g(n)f of n equals f of open paren n minus 3 close paren plus g of nгде g(n)=f(n/2)g of n equals f of open paren n / 2 close paren, если nn делится на 2, и g(n)=0g of n equals 0 в противном случае. Начальное условие: f(1)=1f of 1 equals 1. Для всех n<1n is less than 1 значение f(n)=0f of n equals 0. ️ Шаг 2: Последовательное вычисление значений Рассчитаем значения функции для всех чисел от 1 до 25:

  • f(1)=1f of 1 equals 1 f(2)=f(2/2)=f(1)=1f of 2 equals f of open paren 2 / 2 close paren equals f of 1 equals 1 f(3)=f(33)=0f of 3 equals f of open paren 3 minus 3 close paren equals 0 f(4)=f(43)+f(4/2)=f(1)+f(2)=1+1=2f of 4 equals f of open paren 4 minus 3 close paren plus f of open paren 4 / 2 close paren equals f of 1 plus f of 2 equals 1 plus 1 equals 2 f(5)=f(53)=f(2)=1f of 5 equals f of open paren 5 minus 3 close paren equals f of 2 equals 1 f(6)=f(63)+f(6/2)=f(3)+f(3)=0+0=0f of 6 equals f of open paren 6 minus 3 close paren plus f of open paren 6 / 2 close paren equals f of 3 plus f of 3 equals 0 plus 0 equals 0 f(7)=f(73)=f(4)=2f of 7 equals f of open paren 7 minus 3 close paren equals f of 4 equals 2 f(8)=f(83)+f(8/2)=f(5)+f(4)=1+2=3f of 8 equals f of open paren 8 minus 3 close paren plus f of open paren 8 / 2 close paren equals f of 5 plus f of 4 equals 1 plus 2 equals 3 f(9)=f(93)=f(6)=0f of 9 equals f of open paren 9 minus 3 close paren equals f of 6 equals 0 f(10)=f(103)+f(10/2)=f(7)+f(5)=2+1=3f of 10 equals f of open paren 10 minus 3 close paren plus f of open paren 10 / 2 close paren equals f of 7 plus f of 5 equals 2 plus 1 equals 3 f(11)=f(113)=f(8)=3f of 11 equals f of open paren 11 minus 3 close paren equals f of 8 equals 3 f(12)=f(9)+f(6)=0f of 12 equals f of 9 plus f of 6 equals 0 f(13)=f(10)=3f of 13 equals f of 10 equals 3 f(14)=f(11)+f(7)=3+2=5f of 14 equals f of 11 plus f of 7 equals 3 plus 2 equals 5 f(15)=f(12)=0f of 15 equals f of 12 equals 0 f(16)=f(13)+f(8)=3+3=6f of 16 equals f of 13 plus f of 8 equals 3 plus 3 equals 6 f(17)=f(14)=5f of 17 equals f of 14 equals 5 f(18)=f(15)+f(9)=0f of 18 equals f of 15 plus f of 9 equals 0 f(19)=f(16)=6f of 19 equals f of 16 equals 6 f(20)=f(17)+f(10)=5+3=8f of 20 equals f of 17 plus f of 10 equals 5 plus 3 equals 8 f(21)=f(18)=0f of 21 equals f of 18 equals 0 f(22)=f(19)+f(11)=6+3=9f of 22 equals f of 19 plus f of 11 equals 6 plus 3 equals 9 f(23)=f(20)=8f of 23 equals f of 20 equals 8 f(24)=f(21)+f(12)=0f of 24 equals f of 21 plus f of 12 equals 0 f(25)=f(22)=9f of 25 equals f of 22 equals 9

Ответ: Количество программ, которые преобразуют число 1 в число 25, равно 9. Хотите узнать, как изменится количество вариантов, если добавить обязательное условие прохождения через определённое число?

Форма ответа

Ваш аватар