Вопрос задан 17.06.2023 в 12:45. Предмет Информатика. Спрашивает Алфёрова Соня.

Напишите в питоне пожалуйста,дам 100 баллов Исполнитель преобразует число на экране. У

исполнителя есть две команды, которым присвоены номера: 1. Прибавить 1 2. Умножить на 2 Программа для исполнителя – это последовательность команд. Сколько существует программ, для которых при исходном числе 1 результатом является число 20, и при этом траектория вычислений содержит число 10? Траектория вычислений программы – это последовательность результатов выполнения всех команд программы. Например, для программы 121 при исходном числе 7 траектория будет состоять из чисел 8, 16, 17.
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Саутиева Елизавета.

d = [0] * 21

d[1] = 1

for i in range(2, 11):

   d[i] = d[i-1]

   if i % 2 == 0:

       d[i] += d[i // 2]

for i in range(11, 21):

   d[i] = d[i-1]

   if i % 2 == 0 and i // 2 >= 10:

       d[i] += d[i // 2]

print(d[20])

Ответ: 28

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для решения данной задачи можно использовать рекурсивную функцию.

Создадим функцию `count_programs(start, end, trajectory)`, которая будет принимать текущее число `start`, конечное число `end` и текущую траекторию `trajectory`. Функция будет рекурсивно вызывать саму себя, увеличивая `start` на 1 или умножая его на 2, и добавлять результаты в траекторию.

В каждом вызове функции будем проверять, достигли ли мы конечного числа `end`. Если достигли, то проверяем, содержит ли траектория число 10. Если да, то увеличиваем счетчик программ на 1.

В конечном итоге, функция `count_programs(1, 20, [])` вернет количество программ, удовлетворяющих условию задачи.

Пример реализации на языке Python:

```python def count_programs(start, end, trajectory): if start == end: if 10 in trajectory: return 1 else: return 0 elif start > end: return 0 else: return count_programs(start + 1, end, trajectory + [start]) + count_programs(start * 2, end, trajectory + [start])

result = count_programs(1, 20, []) print(result) ```

В данном примере результатом будет количество программ, для которых при исходном числе 1 результатом является число 20, и при этом траектория вычислений содержит число 10.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос