Автор | Сообщение |
|
Отправлено: 26.02.21 09:17. Заголовок: задание 12 (№253)
Дана программа для Редактора: ПОКА нашлось (111) заменить (111, 2) заменить (2222, 333) заменить (33, 1) КОНЕЦ ПОКА Известно, что исходная строка содержала более 100 единиц и не содержала других цифр. Укажи-те минимально возможную длину исходной строки, при которой в результате работы этой про-граммы получится строка, содержащая минимально возможное количество единиц. Решаю прокруткой программы при количестве единиц 101, получается "-21 единица", следовательно, итоговая строка: 13211. При 102 единицах итоговая строка: 1322. При 108 единицах итоговая строка - 2. Не пойму, почему ответ 111 единиц? Помогите, пожалуйста!
|
|
|
Новых ответов нет
[см. все]
|
|
|
Отправлено: 26.02.21 13:31. Заголовок: Ответ
mousoh01 пишет: цитата: | При 108 единицах итоговая строка - 2 |
| Нет. При 108 единицах итоговая строка - 1133. При 111 единицах итоговая строка - 22. Ответ: 111.
|
|
|
|
Отправлено: 16.11.21 21:08. Заголовок: polyakovss[/b(№ 4163..
polyakovss (№ 4163) (Е. Джобс) Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в обеих командах v и w обозначают цепочки символов. 1. заменить (v, w) 2. нашлось (v) Первая команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Если цепочки v в строке нет, эта команда не изменяет строку. Вторая команда проверяет, встречается ли цепочка v в строке исполнителя Редактор. Дана программа для исполнителя Редактор: ПОКА нашлось (12) ИЛИ нашлось (13) заменить (12, 21) заменить (31, 23) заменить (13, 23) КОНЕЦ ПОКА Известно, что начальная строка состоит только из цифр 1 и 3. В ходе работы алгоритма получилась строка, не содержащая единиц. Укажите максимальную длину входной строки, если известно, что после выполнения алгоритма сумма всех цифр в полученной строке равна 404 Помогите, пожалуйста решить.
|
|
|
|
Отправлено: 26.02.21 16:12. Заголовок: Извините, а при 101 ..
Извините, а при 101 единице? Я нашел неверное количество единиц -21?
|
|
|
|
Отправлено: 26.02.21 16:36. Заголовок: Ответ
В условии задачи сказано: цитата: | Укажите минимально возможную длину исходной строки, при которой в результате работы этой программы получится строка, содержащая минимально возможное количество единиц. |
| Минимально возможное количество единиц (то есть 0) должно быть в итоговой строке. При 101 единице в исходной строке итоговая строка: 13211. В ней 3 "1". При 102 единицах в исходной строке итоговая строка: 1322. В ней 1 "1". При 111 единицах в исходной строке итоговая строка: 22. В ней 0 "1".
|
|
|
|
Отправлено: 01.03.21 17:40. Заголовок: Где-то у меня просче..
Где-то у меня просчет. Все-таки хочу разобраться. Помогите, пж. У меня получается так: 102 единицы - 1322 103 единицы - 13221 ... 105 единиц - 13222 106 единиц - 132221 ... 108 единиц - 132222 - 13333 - 1133 109 единиц - ? 110 единиц -?
|
|
|
|
Отправлено: 01.03.21 18:50. Заголовок: Ответ
mousoh01 пишет: цитата: | 109 единиц - ? 110 единиц -? |
|
109 единиц - 11331 110 единиц - 113311 Решение задачи: for k in range(101,200): s = '1'*k while '111' in s : s = s.replace('111','2',1) s = s.replace('2222','333', 1) s = s.replace('33','1',1) if s.count('1') == 0: print(k) break
|
|
|
|
Отправлено: 01.03.21 22:33. Заголовок: Все, понял!!! при 10..
Все, понял!!! при 109 и 110 единицах "33" не превращаются в "1", т.к. условие ПОКА нашлось (111) не выполняется! И ТОЛЬКО ПРИ 111 единицах 1133111 - 1112 - 22! А тут единиц нет! СПАСИБО, polyakovss, за помощь
|
|
|
|