Анаграмма — слово или фраза, полученные перестановкой букв другого слова или фразы (обычно с использованием всех букв, игнорируя пробелы и пунктуацию). Примеры: «лес» ↔ «сел», «соль» ↔ «лось». Если в слове nnn букв и все буквы различны, число возможных перестановок равно n!n!n!. При повторяющихся буквах с кратностями n1,n2,…,nkn_1,n_2,\dots,n_kn1,n2,…,nk число различных анаграмм равно n!n1! n2!…nk!\dfrac{n!}{n_1!\,n_2!\dots n_k!}n1!n2!…nk!n! (например, для «мама» это 4!2!2!=6\dfrac{4!}{2!2!}=62!2!4!=6). Применения: литературная игра слов, головоломки, криптография и задачи обработки текста; для практической генерации анаграмм обычно сортируют или перебирают перестановки и проверяют словарь.
Если в слове nnn букв и все буквы различны, число возможных перестановок равно n!n!n!. При повторяющихся буквах с кратностями n1,n2,…,nkn_1,n_2,\dots,n_kn1 ,n2 ,…,nk число различных анаграмм равно n!n1! n2!…nk!\dfrac{n!}{n_1!\,n_2!\dots n_k!}n1 !n2 !…nk !n! (например, для «мама» это 4!2!2!=6\dfrac{4!}{2!2!}=62!2!4! =6).
Применения: литературная игра слов, головоломки, криптография и задачи обработки текста; для практической генерации анаграмм обычно сортируют или перебирают перестановки и проверяют словарь.