1. Главная
  2. Библиотека
  3. Высшая математика
  4. У исполнителя калькулятора имеются 3 команды, которым п...
Разбор задачи

У исполнителя калькулятора имеются 3 команды, которым присвоены номера: 1. вычесть 1; 2. вычесть 3; 3. найти целую часть от деления на 2. Выполняя первую из них, исполнитель уменьшает число на экране на 1, выполняя вторую — уменьшает на 3, выполняя третью

  • Предмет: Высшая математика
  • Автор: Кэмп
  • #Дискретная математика
  • #Теория графов
У исполнителя калькулятора имеются 3 команды, которым присвоены номера: 1. вычесть 1; 2. вычесть 3; 3. найти целую часть от деления на 2. Выполняя первую из них, исполнитель уменьшает число на экране на 1, выполняя вторую — уменьшает на 3, выполняя третью

Условие:

У исполнителя калькулятора имеются 3 команды, которым присвоены номера: 1. вычесть 1; 2. вычесть 3; 3. найти целую часть от деления на 2. Выполняя первую из них, исполнитель уменьшает число на экране на 1, выполняя вторую — уменьшает на 3, выполняя третью — делит на 2 нацело, отбрасывая остаток. Сколько существует программ, для которых при исходном числе 31 результатом являются число 3, и при этом траектория вычисления не содержит числа 20, 8 и 10 одновременно.

Решение:

Здравствуйте! Я готов помочь вам разобраться с этой задачей на комбинаторику и динамическое программирование.

Решение задачи о калькуляторе

Это задача на нахождение количества путей в графе (или, что эквивалентно, на динамическое программирование), с дополнительным условием исключения определённых промежуточных состояний.

1. Дано

  • Исходное число (N0N_0): 31
  • Целевое число (NfN_f): 3
  • Команды:
  1. Вычесть 1 (xx1x \rightarrow x - 1)

  2. Вычесть 3 (xx3x \rightarrow x - 3)

  3. Целочисленное деление на 2 (xx/2x \rightarrow \lfloor x / 2 \rfloor)

  • Ограничение: Траектория вычисления не должна одновременно содержать числа 20 и

2. Найти

Количество программ (последовательностей команд), переводящих 31 в 3, удовлетворяющих условию ограничения.

3. Решение

Поскольку мы идем от большего числа (31) к меньшему (3), удобнее использовать метод динамического программирования, двигаясь **...

Внутри — полный разбор, аргументация, алгоритм решения, частые ошибки и как отвечать на каверзные вопросы препода, если спросит

Попробуй решить по шагам

Попробуй один шаг и продолжи в режиме обучения или посмотри готовое решение

Какой метод наиболее эффективен для решения задач, подобных данной, где требуется найти количество программ (последовательностей команд) с заданными ограничениями на траекторию вычисления?

Что нужно знать по теме:

Что нужно знать по теме

Алгоритм решения

Топ 3 ошибок

Что спросит препод

Выбери предмет