5. к слову “abracabra” можно применять операцию переворота любой ее подстроки, получая новые слова. например, перевернув первые 4 буквы, мы получим “arbacabra”. тот же результат будет, если перевернуть первую подстроку “br”. затем операцию переворота можно повторять сколько угодно раз, применяя ее к различным подстрокам. сколько различных слов мы при этом можем получить? так, подобные операции над словом “abra” 12 различных слов. ответ обосновать. можно решать как комбинаторно, так и с программы, текст которой надо .

vladimer96 vladimer96    1   18.09.2019 19:10    0

Ответы
nikitenkov20066 nikitenkov20066  08.10.2020 00:41
1. Программа на Питоне, подсчитывающая все слова:
word = "abracabra"
n = len(word)
words = set([word])
to_proceed = [word]
while len(to_proceed) > 0:
    word = to_proceed.pop()
    for l in range(n):
        for r in range(l + 1, n + 1):
            new_word = word[:l] + word[l:r][::-1] + word[r:]
            if new_word not in words:
                words.add(new_word)
                to_proceed.append(new_word)
print(len(words))

2. Комбинаторика: такими операциями можно получить любую перестановку букв исходного слова (переворачиваем подстроку [1:n], затем [2:n], получаем слово, в котором на 1 месте стоит n-й символ. Такими операциями можно последовательно на все места поставить любые символы). Подсчитаем число слов:
- места для 4 букв a можно выбрать
- 2 буквы b на оставшиеся 5 мест можно поставить
- 2 буквы r на оставшиеся 3 места можно поставить
- место для c определяется однозначно
Всего

ответ: 3780
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика