Математика ЕГЭ
Русский язык ЕГЭ
Математика 5-7
Математика ОГЭ
Информатика
Физика
Обществознание
Кликните, чтобы открыть меню

12. Сложные исполнители и алгоритмы

1. Вспоминай формулы по каждой теме
2. Решай новые задачи каждый день
3. Вдумчиво разбирай решения

Исполнитель "Редактор"

Задание 1 #15453

Исполнитель Панцирь получает на вход строку цифр и преобразовывает её. Панцирь может выполнять две команды, в обеих командах v и w обозначают цепочки символов.

1. заменить (v, w)

2. нашлось (v)

Первая команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Если цепочки v в строке нет, эта команда не изменяет строку. Вторая команда проверяет, встречается ли цепочка v в строке исполнителя Панцирь. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь».

Дана программа для Панцирь:

НАЧАЛО

ПОКА нашлось(*1) или нашлось(*5)

ЕСЛИ нашлось(*51)

ТО заменить(*51, 9*)

ИНАЧЕ ЕСЛИ нашлось(*5)

ТО заменить(*5, 0*)

КОНЕЦ ЕСЛИ

КОНЕЦ ЕСЛИ

ЕСЛИ нашлось(*1)

ТО заменить(*1, 1*)

КОНЕЦ ПОКА

КОНЕЦ

На вход приведённой программе поступает строка, начинающаяся с символа <<*>>, после него в строке находится 7 единиц и неизвестное количество пятерок. Расположение цифр может быть любым. Определите наименьшее количество пятерок, которые могли содержаться в изначальной строке, если сумма цифр строки, полученной в результате выполнения программы равна 39.

Программа заменяет пятерки, за которыми находится единица на девятки. Если же за пятеркой находится другая пятерка, то левая пятерка заменяется нулем. Свободные единицы не затрагиваются действиями программы. Чтобы минимизировать количество пятерок нужно найти ближайшее к 39 число кратное 9, которое можно дополнить до 39 оставшимися свободными единицами.

Единственное такое число - это 36. Для его получения нужно 4 пятерки, которые будут стоять перед единицами, а также 3 свободных единицы. Таким образом, наименьшее количество пятерок – это 4.

Ответ: 4

Задание 2 #15454

Исполнитель Панцирь получает на вход строку цифр и преобразовывает её. Панцирь может выполнять две команды, в обеих командах v и w обозначают цепочки символов.

1. заменить (v, w)

2. нашлось (v)

Первая команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Если цепочки v в строке нет, эта команда не изменяет строку. Вторая команда проверяет, встречается ли цепочка v в строке исполнителя Панцирь. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь».

Дана программа для Панцирь:

НАЧАЛО

ПОКА нашлось(*7) или нашлось(*8)

ЕСЛИ нашлось(*87)

ТО заменить(*87, 4*)

ИНАЧЕ ЕСЛИ нашлось(*8)

ТО заменить(*8, 0*)

КОНЕЦ ЕСЛИ

КОНЕЦ ЕСЛИ

ЕСЛИ нашлось(*7)

ТО заменить(*7, 7*)

КОНЕЦ ПОКА

КОНЕЦ

На вход приведённой программе поступает строка, начинающаяся с символа <<*>>, после него в строке находится 6 семерок и неизвестное количество восьмерок. Расположение цифр может быть любым. Определите наименьшее количество восьмерок, которые могли содержаться в изначальной строке, если сумма цифр строки, полученной в результате выполнения программы равна 42.

Программа заменяет восьмерки, за которыми находится семерка на четверки. Если же за восьмеркой находится другая восьмерка, то левая восьмерка заменяется нулем. Свободные семерки не затрагиваются действиями программы. Чтобы минимизировать количество восьмерок нужно найти макисмальное количество свободных семерок, сумма которых будет кратна 42.

Сразу же можно определить, что это 6 семерок, значит в строке может не быть восьмерок вовсе, т.е. минимальное количество восьмерок – это 0.

Ответ: 0

Задание 3 #15455

Исполнитель Панцирь получает на вход строку цифр и преобразовывает её. Панцирь может выполнять две команды, в обеих командах v и w обозначают цепочки символов.

1. заменить (v, w)

2. нашлось (v)

Первая команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Если цепочки v в строке нет, эта команда не изменяет строку. Вторая команда проверяет, встречается ли цепочка v в строке исполнителя Панцирь. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь».

Дана программа для Панцирь:

НАЧАЛО

ПОКА нашлось(*7) или нашлось(*8)

ЕСЛИ нашлось(*78)

ТО заменить(*78, 4*)

ИНАЧЕ ЕСЛИ нашлось(*7)

ТО заменить(*7, 0*)

КОНЕЦ ЕСЛИ

КОНЕЦ ЕСЛИ

ЕСЛИ нашлось(*8)

ТО заменить(*8, 8*)

КОНЕЦ ПОКА

КОНЕЦ

На вход приведённой программе поступает строка, начинающаяся с символа <<*>>, после него в строке находится 7 восьмерок и неизвестное количество семерок. Расположение цифр может быть любым. Определите наименьшее количество семерок, которые могли содержаться в изначальной строке, если сумма цифр строки, полученной в результате выполнения программы равна 40.

Программа заменяет семерки, за которыми находится восьмерка на четверки. Если же за семеркой находится другая семерка, то левая семерка заменяется нулем. Свободные восьмерки не затрагиваются действиями программы.

Чтобы минимизировать количество семерок определим следующее: в числе 40 содержится 5 восьмерок, однако программа не позволяет взять 5 восьмерок и не использовать остальные.

Очевидно, что восьмерки, перед которыми находится семерка, уменьшаются программой в два раза, значит можно подбором найти такое количество \(k\) и \(n,\) при котором \(8 \cdot k + 4 \cdot n = 40.\) Эти \(k\) и \(n\) равны 3 и 4 соответственно. Следовательно, чтобы получить число 40, нужно задействовать 4 семерки и поставить их перед восьмерками.

Ответ: 4

Задание 4 #15456

Исполнитель Панцирь получает на вход строку цифр и преобразовывает её. Панцирь может выполнять две команды, в обеих командах v и w обозначают цепочки символов.

1. заменить (v, w)

2. нашлось (v)

Первая команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Если цепочки v в строке нет, эта команда не изменяет строку. Вторая команда проверяет, встречается ли цепочка v в строке исполнителя Панцирь. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь».

Дана программа для Панцирь:

НАЧАЛО

ПОКА нашлось(*7) или нашлось(*8)

ЕСЛИ нашлось(*78)

ТО заменить(*78, 4*)

ИНАЧЕ ЕСЛИ нашлось(*7)

ТО заменить(*7, 0*)

КОНЕЦ ЕСЛИ

КОНЕЦ ЕСЛИ

ЕСЛИ нашлось(*8)

ТО заменить(*8, 8*)

КОНЕЦ ПОКА

КОНЕЦ

На вход приведённой программе поступает строка, начинающаяся с символа <<*>>, после него в строке находится 4 восьмерок и неизвестное количество семерок. Расположение цифр может быть любым. Определите наименьшее количество семерок, которые могли содержаться в изначальной строке, если сумма цифр строки, полученной в результате выполнения программы равна 24.

Программа заменяет семерки, за которыми находится восьмерка, на четверки. Если же за семеркой находится другая семерка, то левая семерка заменяется нулем. Свободные восьмерки не затрагиваются действиями программы.

Чтобы минимизировать количество семерок, определим следующее: в числе 24 содержится 3 восьмерки, однако программа не позволяет взять 3 восьмерки и не использовать остальные.

Очевидно, что восьмерки, перед которыми находится семерка, уменьшаются программой в два раза, значит можно подбором найти такое количество \(k\) и \(n,\) при котором \(8 \cdot k + 4 \cdot n = 24.\) Эти \(k\) и \(n\) равны 2 и 2 соответственно. Следовательно, чтобы получить число 24, нужно задействовать 2 семерки и поставить их перед восьмерками.

Ответ: 2

Задание 5 #15110

Исполнитель Панцирь получает на вход строку цифр и преобразовывает её. Панцирь может выполнять две команды, в обеих командах v и w обозначают цепочки символов.

1. заменить (v, w)

2. нашлось (v)

Первая команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Если цепочки v в строке нет, эта команда не изменяет строку. Вторая команда проверяет, встречается ли цепочка v в строке исполнителя Панцирь. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь».

Дана программа для исполнителя Панцирь:

НАЧАЛО

ПОКА нашлось\((11)\) ИЛИ нашлось\((2)\)

ПОКА нашлось\((12)\)

ТО заменить\((12, 11)\)

КОНЕЦ ПОКА

ЕСЛИ нашлось\((11)\)

ТО заменить\((11, 2)\)

ИНАЧЕ ЕСЛИ нашлось\((2)\)

ТО заменить\((2, 0)\)

КОНЕЦ ЕСЛИ

КОНЕЦ ПОКА

КОНЕЦ

Найдите количество цифр в строке, полученной в результате применения приведённой выше программы к строке: \(\underbrace{11\dots11}_{83}\underbrace{22\dots22}_{17}.\) Ответ запишите в двоичной системе счисления.

Для удобства будем использвовать следующие обозначения для количества одинаковых цифр, идущих подряд: \(A_{(B)},\) где A - цифра, которая находится в строке, а B - количество этих цифр.

Изначально была строка \(1_{(83)} 2_{(17)}.\) Цикл ПОКА внутри основного цикла ПОКА будет работать до момента исчезновения всех двоек, таким образом после выполнения этого цикла строка будет состоять из 100 единиц.

Далее все единицы исчезнут, а на их месте появятся двойки.

\(1_{(100)} \rightarrow 2_{(50)}\)

После этого все двойки заменятся нулями и программа завершит свою работу. В полученной строке 50 нулей. Переведем 50 в двоичную СС: \(50_{10} = 110010_{2}\)

Ответ: 110010

Задание 6 #15103

Исполнитель Панцирь получает на вход строку цифр и преобразовывает её. Панцирь может выполнять две команды, в обеих командах v и w обозначают цепочки символов.

1. заменить (v, w)

2. нашлось (v)

Первая команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Если цепочки v в строке нет, эта команда не изменяет строку. Вторая команда проверяет, встречается ли цепочка v в строке исполнителя Панцирь. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь».

Дана программа для исполнителя Панцирь:

НАЧАЛО

ПОКА нашлось\((33)\) ИЛИ нашлось\((9)\)

ПОКА нашлось\((39)\)

ТО заменить\((39, 33)\)

КОНЕЦ ПОКА

ЕСЛИ нашлось\((33)\)

ТО заменить\((33, 9)\)

ИНАЧЕ ЕСЛИ нашлось\((9)\)

ТО заменить\((9, 0)\)

КОНЕЦ ЕСЛИ

КОНЕЦ ПОКА

КОНЕЦ

Определите количество преобладающих цифр в строке, полученной в результате применения приведённой выше программы к строке: \(\underbrace{33\dots33}_{93}\underbrace{99\dots99}_{312}.\)

Для удобства будем использвовать следующие обозначения для количества одинаковых цифр, идущих подряд: \(A_{(B)},\) где A - цифра, которая находится в строке, а B - количество этих цифр.

Изначально была строка \(3_{(93)} 9_{(312)}.\) Цикл ПОКА внутри основного цикла ПОКА будет работать до момента исчезновения всех девяток, таким образом после выполнения этого цикла строка будет состоять из 405 троек.

Далее все тройки кроме последней исчезнут, а на их месте появятся девятки.

\(3_{(405)} \rightarrow 9_{(202)} 3_{(1)}\)

После этого все девятки заменятся нулями и программа завершит свою работу. В полученной строке 202 нуля.

Ответ: 202

Задание 7 #15108

Исполнитель Панцирь получает на вход строку цифр и преобразовывает её. Панцирь может выполнять две команды, в обеих командах v и w обозначают цепочки символов.

1. заменить (v, w)

2. нашлось (v)

Первая команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Если цепочки v в строке нет, эта команда не изменяет строку. Вторая команда проверяет, встречается ли цепочка v в строке исполнителя Панцирь. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь».

Дана программа для исполнителя Панцирь:

НАЧАЛО

ПОКА нашлось\((11)\) ИЛИ нашлось\((2)\)

ПОКА нашлось\((12)\)

ТО заменить\((12, 11)\)

КОНЕЦ ПОКА

ЕСЛИ нашлось\((11)\)

ТО заменить\((11, 2)\)

ИНАЧЕ ЕСЛИ нашлось\((2)\)

ТО заменить\((2, 0)\)

КОНЕЦ ЕСЛИ

КОНЕЦ ПОКА

КОНЕЦ

Сколько нулей содержится в строке, полученной в результате применения приведённой выше программы к строке: \(\underbrace{11\dots11}_{39}\underbrace{22\dots22}_{14}.\)

Для удобства будем использвовать следующие обозначения для количества одинаковых цифр, идущих подряд: \(A_{(B)},\) где A - цифра, которая находится в строке, а B - количество этих цифр.

Изначально была строка \(1_{(39)} 2_{(14)}.\) Цикл ПОКА внутри основного цикла ПОКА будет работать до момента исчезновения всех двоек, таким образом после выполнения этого цикла строка будет состоять из 87 единиц.

Далее все единицы кроме последней исчезнут, а на их месте появятся двойки.

\(1_{(53)} \rightarrow 2_{(26)} 1_{(1)}\)

После этого все двойки заменятся нулями и программа завершит свою работу. В полученной строке 26 нулей.

Ответ: 26