Статья Автор: Лебедев Дмитрий Алексеевич

Типа 23 КЕГЭ

Есть система команд
  • +2
  • +3
  • *5
надо из числа a получить число b
(a>1, b<100)
 

Для решения создаем матрицу переходов A и находим (E-A)-1
Это даст ответ для всех значений
Используем numpy



Формулировка задачи
Исполнитель Калькулятор умеет выполнять несколько команд: 
  1. Прибавить 7
  2. Отнять 3
  3. Умножить на 2
  4. Поделить  нацело на 5
Все операции совершаются на отрезке от A до B (включительно) - то есть, начальное число и все результаты операций
должны принадлежать отрезку [A;B]
Например, если A= 1, B=100, а на экране число x, то для:
  • x = 2 можно выполнить 1 и 3 команды (получить 9= x + 7 и 4 = x * 2)
  • x = 99 можно выполнить 2 и 4 команды (получить 96 = 99 - 3 и 19=99//5
Возможные задания:
  1. Известно, что Исполнитель выполнил ровно N команд. Определите количество траекторий,
    переводящих заданное число x  в заданное число y
  2. Известно, что Исполнитель выполнил не более N команд. Определите количество траекторий,
    переводящих заданное число x  в заданное число y. 
  3. Известно, что Исполнитель выполнил ровно N команд. Определите x, y, такие что количество траекторий,
    переводящих число x  в число y максимально
  4. Для "направленного" (ацикличного) набора команд :
    Опеределите общее количество траекеторий, переводящих x в y (определить для всех пар) 
  5. Для "направленного" (ацикличного) набора команд :
    Для заданных x,y найти длину траектории, при которой количество вариантов траекторий максимально

Печать