Вс Процедура Б Нач (Записывай в столбик) Шаг-Поворот-Поворот-Поворот-Шаг-Шаг-Поворот-Поворот-Шаг-Поворот-Шаг-Поворот-Шаг-Поворот-Поворот-Поворот-Шаг-Поворот-Поворот-Поворот-Шаг-Прыжок Кон Процедура АНач шаг-поворот-поворот-поворот-шаг-шаг-поворот-поворот-поворот-шаг-поворот-шаг-поворот-шаг-поворот-поворот-шаг-шаг-поворот-поворот-поворот Кон Процедура ОНач шаг-поворот-поворот-поворот-шаг-шаг-поворот-поворот-поворот-шаг-поворот-поворот-поворот-шаг-шаг-поворот-поворот-поворот-шаг-прыжок
Алг Баобаб
Нач (Столбиком тоже) сделай Б - сделай А - сделай О - сделай Б - сделай А - сделай Б Кон
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 определяется однозначно Всего
Алгоритм слова "БАОБАБ"
Вс Процедура Б Нач (Записывай в столбик) Шаг-Поворот-Поворот-Поворот-Шаг-Шаг-Поворот-Поворот-Шаг-Поворот-Шаг-Поворот-Шаг-Поворот-Поворот-Поворот-Шаг-Поворот-Поворот-Поворот-Шаг-Прыжок Кон Процедура АНач шаг-поворот-поворот-поворот-шаг-шаг-поворот-поворот-поворот-шаг-поворот-шаг-поворот-шаг-поворот-поворот-шаг-шаг-поворот-поворот-поворот Кон Процедура ОНач шаг-поворот-поворот-поворот-шаг-шаг-поворот-поворот-поворот-шаг-поворот-поворот-поворот-шаг-шаг-поворот-поворот-поворот-шаг-прыжокАлг Баобаб
Нач (Столбиком тоже) сделай Б - сделай А - сделай О - сделай Б - сделай А - сделай Б Кон