Решаем задачи B14 (об исполнителе)

advertisement
Решаем задачи B14 (об исполнителе)
Методику решения этих задач предложили О.Б. Богомолова, д. п. н., преподаватель МГГУ им. М.А.
Шолохова и Д.Ю. Усенков, ст. н. с. Института информатизации образования Российской академии
образования в журнале Информатика (приложение к журналу «1 сентября») июль - август 2013
Типовое условие: “У некоторого исполнителя — две команды, обозначенные номерами 1 и 2 и
реализующие некоторые математические действия («прибавить число», «умножить на число» и т.д.).
Требуется составить алгоритм, позволяющий получить из одного числа другое и состоящий не более чем
из пяти команд. Ответом является записанная без разделителей (запятых, пробелов и пр.)
последовательность номеров команд.
Пример 1:
У исполнителя Утроитель две команды, которым присвоены номера:
1. вычти один
2. умножь на три
Первая из них уменьшает число на экране на 1, вторая – утраивает его. Запишите порядок команд в
алгоритме получения из числа 5 числа 26, содержащем не более 5 команд, указывая лишь номера команд.
Если таких алгоритмов более одного, то запишите любой из них.
Решим эту задачу методом «от противного». Найдем алгоритм получения из числа 26 (конечного)
числа 5 (исходного) за не более чем пять действий, обратных к заданным (т.е. в нашем случае — «прибавь
1» и «разделить на 3»). При этом рассуждения основаны на двух основных идеях: во-первых, надо прийти
от одного числа к другому как можно быстрее (ведь количество команд в
алгоритме ограничено), а во-вторых, если на каком-то этапе число не делится
нацело на 3, то это подсказка: надо применять другую команду («+1»). Такое
“обратное” решение записываем «в столбик», где операции выполняются сверху
вниз.
А теперь, когда найден “обратный путь”, надо записать тот же алгоритм
наоборот — уже от числа 5 к числу 26 с использованием исходных команд «вычти
1» и «умножить на три»: 11221
Вот и все!
Пример 2:
У исполнителя Квадратор две команды, которым присвоены номера:
1. возведи в квадрат
2. вычти 2
Первая из них возводит число на экране во вторую степень, вторая – уменьшает число на 2.
Составьте алгоритм получения из числа 1 число 5, содержащий не более пяти команд. В
ответе запишите только номера команд.
Попробуем решать эту задачу так же, как и предыдущую.
«Обратные» команды: «извлечь квадратный корень» и «прибавить
2». «Обратное» решение не дало нам никакого результата, то есть
за четыре команды мы не только не приблизились к исходному
числу, но и вообще вернулись «на исходные позиции».
Разгадка кроется в команде «возвести в квадрат»: она дает
один и тот же результат для двух разных исходных чисел, равных по
модулю, но различающихся знаком. Поэтому для этой команды надо брать «обратную» команду в виде
.

Алгоритм решения подобных задач
• сначала пытаться решать «обратную» задачу как обычно;
• если не получается, то для результата «вычисления квадратного корня»
поменять знак результата с плюса на минус;
• если операция «взять квадратный корень» используется несколько раз, то
сначала пытаться поменять знак на «минус» у одной такой операции; если не
получается, то попробовать у другой, потом – у обеих вместе и так перебрать
все возможные варианты.
Применим данный алгоритм к примеру 2 и получим решение: 22122.
1
Примеры задач для самостоятельного решения
1. У исполнителя Квадратор две команды, которым присвоены номера:
1. возведи в квадрат
2. прибавь 1
Первая из них возводит число на экране во вторую степень, вторая – прибавляет к числу 1. Составьте
алгоритм
получения из
числа
1
числа
26,
содержащий
не
более
5 команд. В ответе запишите только номера команд. Если таких алгоритмов более одного, то запишите
любой из них.
2. У исполнителя Квадратор две команды, которым присвоены номера:
1. возведи в квадрат
2. вычти 4
Первая из них возводит число на экране во вторую степень, вторая - уменьшает число на 4. Составьте
алгоритм получения из числа 2 числа 64, содержащий не более пяти команд. В ответе запишите
только номера команд. Если таких алгоритмов более одного, то запишите любой из них.
3. У исполнителя Конструктор две команды, которым присвоены номера:
1. приписать 2
2. разделить на 2
Первая из них приписывает к числу на экране справа цифру 2, вторая делит его на 2.
Запишите порядок команд в алгоритме получения из числа 1 числа 16, содержащем не более 5
команд, указывая только номера команд. Если таких алгоритмов более одного, запишите любой из них.
4. У исполнителя Конструктор две команды, которым присвоены номера:
1. приписать 2
2. разделить на 2
Первая из них приписывает к числу на экране справа цифру 2, вторая - делит его на 2. Запишите
порядок команд в алгоритме получения из числа 3 числа 2, содержащем не более 5 команд, указывая
только номера команд. Если таких алгоритмов более одного, запишите любой из них.
5. У исполнителя Конструктор две команды, которым присвоены номера:
1. приписать 2
2. разделить на 2
Первая из них приписывает к числу на экране справа цифру 2, вторая - делит его на 2. Запишите
порядок команд в алгоритме получения из числа 32 числа 21, содержащем не более 5 команд,
указывая только номера команд. Если таких алгоритмов более одного, запишите любой из них.
6. У исполнителя Конструктор две команды, которым присвоены номера:
1. приписать 2
2. разделить на 2
Первая из них приписывает к числу на экране справа цифру 2, вторая - делит его на 2. Запишите
порядок команд в алгоритме получения из числа 14 числа 9, содержащем не более 5 команд, указывая
только номера команд. Если таких алгоритмов более одного, запишите любой из них.
7. У исполнителя Утроитель две команды, которым присвоены номера:
1. вычти один
2. умножь на три
Первая из них уменьшает число на экране на 1, вторая - утраивает его. Запишите порядок команд в
алгоритме получения из числа 5 числа 26,содержащем не более 5 команд, указывая лишь номера
команд. Если таких алгоритмов более одного, то запишите любой из них.
8. У исполнителя Утроитель две команды, которым присвоены номера:
1. вычти 1
2. умножь на три
Первая из них уменьшает число на экране на 1, вторая - утраивает его. Запишите порядок команд в
алгоритме получения из числа 9 числа 62,содержащем не более 5 команд, указывая лишь номера
команд. Если таких алгоритмов более одного, то запишите любой из них.
9. У исполнителя Утроитель две команды, которым присвоены номера:
1. вычти 1
2. умножь на три
2
Первая из них уменьшает число на экране на 1, вторая - утраивает его. Запишите порядок команд в
алгоритме получения из числа 6 числа 10,содержащем не более 5 команд, указывая лишь номера
команд. Если таких алгоритмов более одного, то запишите любой из них.
10. У исполнителя Утроитель две команды, которым присвоены номера:
1. вычти 1
2. умножь на три
Первая из них уменьшает число на экране на 1, вторая - утраивает его. Запишите порядок команд в
алгоритме получения из числа 4 числа 25, содержащем не более 5 команд, указывая лишь номера
команд. Если таких алгоритмов более одного, то запишите любой из них.
11. У исполнителя Умножитель две команды, которым присвоены номера:
1. вычти 1
2. умножь на 2
Первая из них уменьшает число на экране на 1, вторая - удваивает его. Запишите порядок команд в
алгоритме получения из числа 3 числа 21, содержащем не более 5 команд, указывая лишь номера
команд. Если таких алгоритмов более одного, то запишите любой из них.
12. У исполнителя Умножитель две команды, которым присвоены номера:
1. вычти 1
2. умножь на 2
Первая из них уменьшает число на экране на 1, вторая - удваивает его. Запишите порядок команд в
алгоритме получения из числа 3 числа 18, содержащем не более 5 команд, указывая лишь номера
команд. Если таких алгоритмов более одного, то запишите любой из них.
13. У исполнителя Умножитель две команды, которым присвоены номера:
1. вычти 1
2. умножь на 2
Первая из них уменьшает число на экране на 1, вторая - удваивает его. Запишите порядок команд в
алгоритме получения из числа 2 числа 11, содержащем не более 5 команд, указывая лишь номера
команд. Если таких алгоритмов более одного, то запишите любой из них.
14. У исполнителя Утроитель две команды, которым присвоены номера:
1. вычти 1
2. умножь на три
Первая из них уменьшает число на экране на 1, вторая - утраивает его. Запишите порядок команд в
алгоритме получения из числа 7 числа 13, содержащем не более 5 команд, указывая лишь номера
команд. Если таких алгоритмов более одного, то запишите любой из них.
15. У исполнителя Утроитель две команды, которым присвоены номера:
1. вычти 2
2. умножь на три
Первая из них уменьшает число на экране на 2, вторая - утраивает его. Запишите порядок команд в
алгоритме получения из числа 11 числа 13, содержащей не более 5 команд, указывая лишь номера
команд. Если таких алгоритмов более одного, то запишите любой из них.
16. У исполнителя Вычислитель две команды, которым присвоены номера:
1. умножь на 3
2. вычти 2
Первая из них увеличивает число на экране в 3 раза, вторая - уменьшает его на 2. Составьте алгоритм
получения из числа 1 числа 23, содержащий не более 5 команд. В ответе запишите только номера
команд. Если таких алгоритмов более одного, то запишите любой из них.
17. У исполнителя Вычислитель две команды, которым присвоены номера:
1. умножь на 3
2. вычти 1
Первая из них увеличивает число на экране в 3 раза, вторая уменьшает его на 1. Составьте алгоритм
получения из числа 1 числа 23, содержащий не более 5 команд. В ответе запишите только номера
команд. Если таких алгоритмов более одного, то запишите любой из них.
18. У исполнителя Вычислитель две команды, которым присвоены номера:
1. вычти 3
2. умножь на 3
3
Первая из них уменьшает число на экране на 3, вторая - умножает его на 3. Составьте алгоритм
получения из числа 7 числа 177, содержащий не более 5 команд. В ответе запишите только номера
команд. Если таких алгоритмов более одного, то запишите любой из них.
19. У исполнителя Вычислитель две команды, которым присвоены номера:
1. прибавить 2
2. удвоить
Первая из них увеличивает число на экране на 2, вторая - умножает его на 2. Составьте алгоритм
получения из числа 3 числа 44, содержащий не более 5 команд. В ответе запишите только номера
команд. Если таких алгоритмов более одного, то запишите любой из них.
20. У исполнителя Вычислитель две команды, которым присвоены номера:
1. умножь на 3
2. вычти 2
Первая из них увеличивает число на экране в 3 раза, вторая уменьшает его на 2. Составьте алгоритм
получения из числа 2 числа 30, содержащий не более 5 команд. В ответе запишите только номера
команд. Если таких алгоритмов более одного, то запишите любой из них.
21. У исполнителя Квадратор две команды, которым присвоены номера:
1. зачеркни справа
2. возведи в квадрат
Первая из них удаляет крайнюю правую цифру числа на экране, вторая - возводит число во вторую
степень. Составьте алгоритм получения из числа 5 числа 1, содержащий не более 5 команд. В ответе
запишите только номера команд. Если таких алгоритмов более одного, то запишите любой из них.
22. У исполнителя Квадратор две команды, которым присвоены номера:
1. зачеркни слева
2. возведи в квадрат
Первая из них удаляет крайнюю левую цифру числа на экране, вторая - возводит число во вторую
степень. Составьте алгоритм получения из числа 8 числа 56, содержащий не более 5 команд. В
ответе запишите только номера команд. Если таких алгоритмов более одного, то запишите любой из
них.
23. У исполнителя Квадратор две команды, которым присвоены номера:
1. возведи в квадрат
2. вычти 2
Первая из них возводит число на экране во вторую степень, вторая - вычитает из числа 2. Составьте
алгоритм получения из числа 7 числа 79, содержащий не более 5 команд. В ответе запишите только
номера команд. Если таких алгоритмов более одного, то запишите любой из них.
24. У исполнителя Вычислитель две команды, которым присвоены номера:
1. умножь на 2
2. вычти 1
Первая из них увеличивает число на экране в 2 раза, вторая уменьшает его
на 1. Составьте алгоритм получения из числа 9 числа 29, содержащий не более
5 команд. В ответе запишите только номера команд. Если таких алгоритмов более одного, запишите
любой из них.
25. У исполнителя Вычислитель две команды, которым присвоены номера:
1. прибавь один
2. возведи в квадрат
Первая из них увеличивает число на экране на 1, вторая - возводит его во вторую степень. Составьте
алгоритм получения из числа 2 числа 19, содержащий не более 5 команд. В ответе запишите только
номера команд. Если таких алгоритмов более одного, то запишите любой из них.
26. У исполнителя Вычислитель две команды, которым присвоены номера:
1. вычесть 3
2. приписать 1
Первая из них уменьшает число на 3, а вторая приписывает к нему справа 1. Составьте алгоритм
получения из числа 8 числа 15, содержащий не более 5 команд. В ответе запишите только номера
команд. Если таких алгоритмов более одного, запишите любой из них.
4
27. У исполнителя Квадратор две команды, которым присвоены номера:
1. возведи в квадрат,
2. прибавь 1.
Первая из них возводит число на экране в квадрат, вторая увеличивает его на 1. Запишите порядок
команд в программе, которая преобразует число 1 в число 10 и содержит не более 4 команд.
Указывайте лишь номера команд.
28. У исполнителя Квадратор две команды, которым присвоены номера:
1. прибавь 3
2. возведи в квадрат
Первая из них увеличивает число на экране на 3, вторая возводит его во вторую степень. Исполнитель
работает только с натуральными числами. Составьте алгоритм получения из числа 4 числа 58,
содержащий не более 5 команд. В ответе запишите только номера команд.
29. У исполнителя Делитель две команды, которым присвоены номера:
1. раздели на 2
2. вычти 1
Первая из них уменьшает число на экране в 2 раза, вторая уменьшает его на 1. Исполнитель работает
только с натуральными числами. Составьте алгоритм получения из числа 65 числа 4, содержащий не
более 5 команд. В ответе запишите только номера команд.
30. У исполнителя Квадратор две команды, которым присвоены номера:
1. вычти 3
2. возведи в квадрат
Первая из них уменьшает число на экране на 3, вторая возводит его во вторую степень. Исполнитель
работает только с натуральными числами. Составьте алгоритм получения из числа 4 числа 49,
содержащий не более 5 команд. В ответе запишите только номера команд.
31. У исполнителя Вычислитель две команды, которым присвоены номера:
1. умножь на 4
2. вычти 2
Первая из них увеличивает число на экране в 4 раза, вторая уменьшает его на 2. Составьте алгоритм
получения из числа 4 числа 28, содержащий не более 5 команд. В ответе запишите только номера
команд.
5
Download