Предмет: Информатика, автор: fuksgerman

Задача 3: Пятибуквенные последовательности
Составим все возможные последовательности из пяти букв, используя только символы L, R, V, и выпишем их в алфавитном порядке. Вот начало этого списка:

LLLLL
LLLLR
LLLLV
LLLRL
Определите последовательности, которые будут идти в этом списке под номерами 8, 81, 98, 110, 179.

Возможно, вам будет проще ответить на третий и четвертый вопрос если вы будете знать, что на 100-м месте в этом списке стоит строка RLVLL.

В ответе нужно записать пять строк, состоящих из латинских букв. Ответ на каждое задание нужно писать в отдельной строке (в первой строке – слово, стоящее в списке 8-м, во второй строке – слово, стоящее 81-м, в третьей строке — 98-м, в четвертой строке – 110-м, в пятой строке – 179-м). Порядок записи строк в ответе менять нельзя. В ответе должно быть ровно пять строк. Если вы не можете найти какой-то из ответов, вместо него напишите любую строчку из данных пяти букв.


girfanovniaz274: Есть код, но не вмещается
girfanovniaz274: Все остальное снизу

Ответы

Автор ответа: girfanovniaz274
69

Ответ:

8 LLLVR

81 LVVVV

98 RLRVR

110 RRLLR

179 VLRVR

Объяснение:

Я написал код, могу им поделиться. Его можно было бы еще упростить, ну я не стал, и так нормально.

Чтобы написать решение задачи можно идти снизу вверх. Точнее я не вижу способа легче. То есть, сначала мы будем рассматривать случай когда только две буквы(как раз последние две). Мы их изменяем от LL до VV. Потом мы меняем третью букву и снова по кругу (меняем снова последние две). После того, как дошли до VV, мы меняем третью букву на следующую и возвращаем последние две буквы в начальное положение. Так и продолжаем, идем по кругу с четвертой буквой, и так далее.

Код был написан на Python, если не разбираетесь то немного объясню, def - это функция(хотя почти везде это так); переменная glob - хранит текущий порядок, то есть на каком числе остановился.

def men(buk) - это функция нужна чтобы упростить жизнь, то есть чтобы каждый раз не писать: если эта буква L, меняем её на R и так далее. Основные моменты я объяснил. Я закину и код, и результат, если ты не можешь запустить этот код. Круглые скобки - это кортеж(что такое, объяснять не буду)) не это цель ответа).

P.S. Пожалуйста оцени как лучший ответ, впервые написал такой большой ответ)), если не жалко конечно))


Y43n1k: Здравствуйте! Не могли бы Вы отправить мне код на зыке Python где-нибудь?
girfanovniaz274: Давайте куда
girfanovniaz274: Напишите куда, я вам туда отправлю
savvakurin: кинь код на вк пж vkcomgomoshaba либо [email protected]
nemcev5353: vkcomnemtsev5 пж сюда
girfanovniaz274: ок
VikaSimon666: Правда очень круто и умно, но до меня всё равно не очень доходит(( Не мог ли ты чуть по подробнее сказать, что такое к примеру:"последние две буквы","идти снизу вверх" и т.д. Но за ответ прямо огромное спасибо! Всё-таки подожду объяснений))
girfanovniaz274: Снизу вверх - значит мы изменяем все начиная с самого малого и постепенно поднимаясь выше.
girfanovniaz274: Как и в нашем примере. У нас ведь получается первая комбинация это LLLLL. По снизу вверх(хотя я почти не встречал сверху вниз)) мы начнем изменять с самой последний буквы. То есть следующее это LLLLR, после LLLLV.Когда мы дошли до V, значит теперь мы должны поменять букву, которая идет до V. То есть следующее выходит LLLRL. Также после каждого такого перехода мы возвращаем все снова на L.
girfanovniaz274: Если так прописывать в программе, то у нас выйдет довольно много if и for(циклов, и там можно будет запутаться). Поэтому я реализовал так называемую две буквы, я посчитал сколько всего там будет изменений и собрал как раз нужные условия и циклы. Все что я делаю дальше это меняю третью букву, и снова запускаю изменения последних двух букв.
Похожие вопросы