Составить программу, которая из слова "программа" составляет слова "грамм", "рога", "гора"?

Составить программу, которая из слова программа составляет слова грамм, рога, гора? - коротко

Для решения задачи можно использовать перебор всех возможных комбинаций букв в слове "программа" и проверку их на соответствие заданным словам. Пример на Python:

from itertools import permutations
word = "программа"
targets = {"грамм", "рога", "гора"}
found = set()
for length in range(3, 6):
 for perm in permutations(word, length):
 candidate = ''.join(perm)
 if candidate in targets:
 found.add(candidate)
print(found))

Составить программу, которая из слова программа составляет слова грамм, рога, гора? - развернуто

Для решения задачи составления слов "грамм", "рога" и "гора" из букв слова "программа" можно разработать программу на языке Python. Алгоритм будет проверять, можно ли построить целевые слова из букв исходного слова, учитывая их количество и наличие.

Сначала необходимо разобрать исходное слово на буквы и подсчитать, сколько раз каждая из них встречается. Для этого можно использовать словарь, где ключами будут буквы, а значениями — их частоты. Затем для каждого целевого слова проводится аналогичный анализ, после чего сравниваются частоты букв. Если для каждой буквы целевого слова её частота в исходном слове не меньше требуемой, значит, слово можно составить.

Пример реализации на Python:

from collections import defaultdict
def count_letters(word):
 letter_count = defaultdict(int)
 for letter in word:
 letter_count[letter] += 1
 return letter_count
def can_form_word(source_word, target_word):
 source_count = count_letters(source_word)
 target_count = count_letters(target_word)
 for letter, count in target_count.items():
 if source_count[letter] < count:
 return False
 return True
source = "программа"
targets = ["грамм", "рога", "гора"]
for target in targets:
 if can_form_word(source, target):
 print(f"Слово '{target}' можно составить из '{source}'")
 else:
 print(f"Слово '{target}' нельзя составить из '{source}'")

В этой программе функция count_letters создает словарь с количеством каждой буквы в слове, а can_form_word проверяет возможность составления целевого слова. Если все буквы присутствуют в нужном количестве, программа выводит положительный результат. Для слова "программа" вывод будет следующим: "грамм" — можно, "рога" — можно, "гора" — можно, так как все требуемые буквы содержатся в исходном слове в достаточном количестве.

Данный подход легко масштабируется для проверки других слов и может быть дополнен обработкой регистра или исключением повторяющихся проверок.