Задание 5.
Анализ простых алгоритмов для конкретного исполнителя с фиксированным набором команд (рекомендуемое время выполнения - 6 минут)
Алгоритм – четкая последовательность действий и нельзя при выполнении алгоритма нарушать эту последовательность.
Рассмотрим решение на примере задачи: У некоего исполнителя всего две команды, у которых есть номера:
1. Прибавь 1
2. Умножь на b (b – неизвестное натуральное число)
Исполнителю выдали для исполнения алгоритм: 12121. Исходное число 3. В результате было получено число 151. Требуется определить значение переменной b.
Решение:
Запишем кратко условие задачи: из числа 3 получили число 151 путем применения алгоритма 12121. Команда №1: +1, команда №2: *b
Исходное число |
Команда 1 |
Команда 2 |
Команда 1 |
Команда 2 |
Команда 1 |
Итоговое число |
3 |
3+1=4 |
4*b |
4*b+1 |
(4*b+1)*b |
(4*b+1)*b+1 |
151 |
Получилось уравнение (4*b+1)*b+1=151
(4*b+1)*b=150
4b2 + b -150 = 0
При решении квадратного уравнения нужно учитывать только натуральные корни. Это число 6.
Обязательно после решения задачи сделайте проверку. Подставьте найденное число в алгоритм.
3
+1 = 4 4 * 6 = 24 24 + 1 = 25 25 * 6 = 150 150 +
1 = 151
Есть еще один тип заданий. Вот пример задачи:
У исполнителя три команды, которым присвоены номера:
1. Возвести в квадрат
2. Прибавить 3
Составьте алгоритм получения из числа 2 числа 55, содержащий не более 5 команд. В ответе запишите только номера команд.
Когда вы порешаете много подобных задач, возможно, вы сможете решать их очень быстро, практически ничего не записывая. Но пока будем решать традиционно – при помощи дерева.
![]() |
Такие задачи можно решать не только от исходного числа к результату, но и наоборот: от результата к началу. Кстати, рассмотренную задачу именно так и удобнее решать (и гораздо быстрее)
Результат 55 не является квадратом натурального числа, следовательно, мог быть получен только после применения команды №2 из числа 52. Число 52 также не является квадратом и получено из числа 49 командой №2. 49 квадрат 7 (команда №1). 7 можно получить только из 4, а 4 – квадрат 2.
Таким образом, ответ 12122.
Задания для самостоятельного решения.
Задача 1. У исполнителя две команды, которым присвоены номера:
1. прибавь 1
2. умножь на k
(k – неизвестное натуральное число; k ≥ 2)
Выполняя первую из них, исполнитель увеличивает число на экране на 1, а выполняя вторую
– умножает это число на k.
Программа для исполнителя исполнитель – это последовательность номеров команд. Известно,
что программа 111211 переводит число 64 в число 203. Определите значение k.
Пояснение: ((((((64 +1)+1)+1)*k)+1)+1) = 67*k+2=203; k=201/67=3
Ответ: 3
Задача 2. У исполнителя три команды, которым присвоены номера:
1. прибавь 1
2. прибавь 2
3. прибавь s
(s – неизвестное натуральное число)
Выполняя первую из них, исполнитель увеличивает число на экране на 1, выполняя вторую
– увеличивает число на 2, а выполняя третью – увеличивает число на s.
Программа для исполнителя – это последовательность номеров команд.
Известно, что программа 3123312 переводит число 18 в число 69. Определите значение s.
Пояснения: Запишем последовательность вычислений исполнителя: (так как исполнитель применяет только сложение, можно не писать скобки в выражении)
1. 18+s
2. 18+s+1
3. 18+s+1+2
4. 18+s+1+2+s
5. 18+s+1+2+s+s
6. 18+s+1+2+s+s+1
7. 18+s+1+2+s+s+1+2=69
3s+24=69
3s=45
s=15
Ответ: 15
Задача 3. У исполнителя две команды, которым присвоены номера:
1. прибавь b
2. умножь на 2
(b – неизвестное натуральное число) Выполняя первую из них, исполнитель увеличивает число на экране на b, а выполняя вторую, умножает это число на 2. Программа для исполнителя исполнитель – это последовательность номеров команд. Известно, что программа 11211 переводит число 12 в число 54. Определите значение b.
Пояснение:
1. 12+b
2. 12+b+b
3. (12+b+b)*2
4. (12+b+b)*2+b
5. (12+b+b)*2+b+b=54
24+4b+2b=54
6b=30
B=5
Ответ: 5
Задача 4. У исполнителя две команды, которым присвоены номера:
1. вычти 3
2. возведи в квадрат
Первая из них уменьшает число на экране на 3, вторая возводит его во вторую степень. Исполнитель работает только с натуральными числами. Составьте алгоритм получения из числа 4 числа 49, содержащий не более 5 команд. В ответе запишите только номера команд. (Например, 21211 — это алгоритм: возведи в квадрат, вычти 3, возведи в квадрат, вычти 3, вычти 3, который преобразует число 3 в 30.) Если таких алгоритмов более одного, то запишите любой из них.
Ответ: 21112
Задача 5. У исполнителя две команды, которым присвоены номера:
1. вычти 3
2. умножь на 2
Первая из них уменьшает число на экране на 3, вторая удваивает его. Составьте алгоритм получения из числа 3 числа 18, содержащий не более 4 команд. В ответе запишите только номера команд. (Например, 1222 — это алгоритм вычти 3, умножь на 2, умножь на 2, умножь на 2, который преобразует число 5 в 16.) Если таких алгоритмов более одного, то запишите любой из них.
Ответ: 2212
Задача 6. У исполнителя две команды, которым присвоены номера:
(b– неизвестное натуральное число)
Выполняя первую из них, исполнитель увеличивает число на экране на 1, а выполняя вторую, умножает это число на b.
Программа для исполнителя – это последовательность номеров команд. Известно, что программа 1121111211 переводит число 6 в число 82. Определите значение b.
Ответ: 10
Задача 7. У исполнителя Альфа две команды, которым присвоены номера:
1. прибавь 2;
2. раздели на b
(b — неизвестное натуральное число; b ≥ 2).
Выполняя первую из них, Альфа увеличивает число на экране на 2, а выполняя вторую, делит это число на b. Программа для исполнителя Альфа — это последовательность номеров команд. Известно, что программа 11211 переводит число 50 в число 22. Определите значение b.
Ответ: 3
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.