Как найти количество анаграмм у слова

If possible letters to be used in each position is m, a, t and h, and we have four positions, then we could have four possible answers here.

A.) Letters cannot repeat; order does not matter:

n! / ((n-k)!k!)
4! / ((4-4)!4!)
1 

Enumerations:

{m,a,t,h}

B.) Letters cannot repeat; order matters:

n! / (n-k)!
4! = 4 * 3 * 2 * 1 = 24

Enumerations:

{m,a,t,h} {m,a,h,t} {m,t,a,h} {m,t,h,a} {m,h,a,t} {m,h,t,a} {a,m,t,h} {a,m,h,t} {a,t,m,h} {a,t,h,m} {a,h,m,t} {a,h,t,m} {t,m,a,h} {t,m,h,a} {t,a,m,h} {t,a,h,m} {t,h,m,a} {t,h,a,m} {h,m,a,t} {h,m,t,a} {h,a,m,t} {h,a,t,m} {h,t,m,a} {h,t,a,m}

C.) Letters can repeat in a position; order matters:

4^4 = 4 * 4 * 4 * 4 = 256

Enumeration:

{m,m,m,m} {m,m,m,a} {m,m,m,t} {m,m,m,h} {m,m,a,m} {m,m,a,a} {m,m,a,t} {m,m,a,h} {m,m,t,m} {m,m,t,a} {m,m,t,t} {m,m,t,h} {m,m,h,m} {m,m,h,a} {m,m,h,t} {m,m,h,h} {m,a,m,m} {m,a,m,a} {m,a,m,t} {m,a,m,h} {m,a,a,m} {m,a,a,a} {m,a,a,t} {m,a,a,h} {m,a,t,m} {m,a,t,a} {m,a,t,t} {m,a,t,h} {m,a,h,m} {m,a,h,a} {m,a,h,t} {m,a,h,h} {m,t,m,m} {m,t,m,a} {m,t,m,t} {m,t,m,h} {m,t,a,m} {m,t,a,a} {m,t,a,t} {m,t,a,h} {m,t,t,m} {m,t,t,a} {m,t,t,t} {m,t,t,h} {m,t,h,m} {m,t,h,a} {m,t,h,t} {m,t,h,h} {m,h,m,m} {m,h,m,a} {m,h,m,t} {m,h,m,h} {m,h,a,m} {m,h,a,a} {m,h,a,t} {m,h,a,h} {m,h,t,m} {m,h,t,a} {m,h,t,t} {m,h,t,h} {m,h,h,m} {m,h,h,a} {m,h,h,t} {m,h,h,h} {a,m,m,m} {a,m,m,a} {a,m,m,t} {a,m,m,h} {a,m,a,m} {a,m,a,a} {a,m,a,t} {a,m,a,h} {a,m,t,m} {a,m,t,a} {a,m,t,t} {a,m,t,h} {a,m,h,m} {a,m,h,a} {a,m,h,t} {a,m,h,h} {a,a,m,m} {a,a,m,a} {a,a,m,t} {a,a,m,h} {a,a,a,m} {a,a,a,a} {a,a,a,t} {a,a,a,h} {a,a,t,m} {a,a,t,a} {a,a,t,t} {a,a,t,h} {a,a,h,m} {a,a,h,a} {a,a,h,t} {a,a,h,h} {a,t,m,m} {a,t,m,a} {a,t,m,t} {a,t,m,h} {a,t,a,m} {a,t,a,a} {a,t,a,t} {a,t,a,h} {a,t,t,m} {a,t,t,a} {a,t,t,t} {a,t,t,h} {a,t,h,m} {a,t,h,a} {a,t,h,t} {a,t,h,h} {a,h,m,m} {a,h,m,a} {a,h,m,t} {a,h,m,h} {a,h,a,m} {a,h,a,a} {a,h,a,t} {a,h,a,h} {a,h,t,m} {a,h,t,a} {a,h,t,t} {a,h,t,h} {a,h,h,m} {a,h,h,a} {a,h,h,t} {a,h,h,h} {t,m,m,m} {t,m,m,a} {t,m,m,t} {t,m,m,h} {t,m,a,m} {t,m,a,a} {t,m,a,t} {t,m,a,h} {t,m,t,m} {t,m,t,a} {t,m,t,t} {t,m,t,h} {t,m,h,m} {t,m,h,a} {t,m,h,t} {t,m,h,h} {t,a,m,m} {t,a,m,a} {t,a,m,t} {t,a,m,h} {t,a,a,m} {t,a,a,a} {t,a,a,t} {t,a,a,h} {t,a,t,m} {t,a,t,a} {t,a,t,t} {t,a,t,h} {t,a,h,m} {t,a,h,a} {t,a,h,t} {t,a,h,h} {t,t,m,m} {t,t,m,a} {t,t,m,t} {t,t,m,h} {t,t,a,m} {t,t,a,a} {t,t,a,t} {t,t,a,h} {t,t,t,m} {t,t,t,a} {t,t,t,t} {t,t,t,h} {t,t,h,m} {t,t,h,a} {t,t,h,t} {t,t,h,h} {t,h,m,m} {t,h,m,a} {t,h,m,t} {t,h,m,h} {t,h,a,m} {t,h,a,a} {t,h,a,t} {t,h,a,h} {t,h,t,m} {t,h,t,a} {t,h,t,t} {t,h,t,h} {t,h,h,m} {t,h,h,a} {t,h,h,t} {t,h,h,h} {h,m,m,m} {h,m,m,a} {h,m,m,t} {h,m,m,h} {h,m,a,m} {h,m,a,a} {h,m,a,t} {h,m,a,h} {h,m,t,m} {h,m,t,a} {h,m,t,t} {h,m,t,h} {h,m,h,m} {h,m,h,a} {h,m,h,t} {h,m,h,h} {h,a,m,m} {h,a,m,a} {h,a,m,t} {h,a,m,h} {h,a,a,m} {h,a,a,a} {h,a,a,t} {h,a,a,h} {h,a,t,m} {h,a,t,a} {h,a,t,t} {h,a,t,h} {h,a,h,m} {h,a,h,a} {h,a,h,t} {h,a,h,h} {h,t,m,m} {h,t,m,a} {h,t,m,t} {h,t,m,h} {h,t,a,m} {h,t,a,a} {h,t,a,t} {h,t,a,h} {h,t,t,m} {h,t,t,a} {h,t,t,t} {h,t,t,h} {h,t,h,m} {h,t,h,a} {h,t,h,t} {h,t,h,h} {h,h,m,m} {h,h,m,a} {h,h,m,t} {h,h,m,h} {h,h,a,m} {h,h,a,a} {h,h,a,t} {h,h,a,h} {h,h,t,m} {h,h,t,a} {h,h,t,t} {h,h,t,h} {h,h,h,m} {h,h,h,a} {h,h,h,t} {h,h,h,h}

D.) Letters can repeat in a position; order does not matter:

(k + n - 1)! / k!(n - 1)!
(4 + 4 - 1)! / 4!(4 - 1)!
7! / 4!3!
5040 / 144
35

Enumerations:

{m,m,m,m} {m,m,m,a} {m,m,m,t} {m,m,m,h} {m,m,a,a} {m,m,a,t} {m,m,a,h} {m,m,t,t} {m,m,t,h} {m,m,h,h} {m,a,a,a} {m,a,a,t} {m,a,a,h} {m,a,t,t} {m,a,t,h} {m,a,h,h} {m,t,t,t} {m,t,t,h} {m,t,h,h} {m,h,h,h} {a,a,a,a} {a,a,a,t} {a,a,a,h} {a,a,t,t} {a,a,t,h} {a,a,h,h} {a,t,t,t} {a,t,t,h} {a,t,h,h} {a,h,h,h} {t,t,t,t} {t,t,t,h} {t,t,h,h} {t,h,h,h} {h,h,h,h}

Сколько существует анаграмм слова:
а) “факториал”;
б) “перестановка”;
в) “комбинаторика”?
Указание.
а) Временно считайте две буквы “а” различными буквами (обозначьте их

а

1

и

а

2

) и сосчитайте всевозможные анаграммы. Далее учтите, что те анаграммы, которые получаются перестановкой букв

а

1

и

а

2

, на самом деле одинаковы.

reshalka.com

ГДЗ учебник по алгебре 7 класс Дорофеев. 6.4 Перестановки. Номер №606

Решение а

В слове “факториал” 9 букв, из них 2 буквы повторяются, значит:
1) 9! = 1 * 2 * 3 * 4 * 5 * 6 * 7 * 8 * 9 = 362880 (анаграмм) − всего;
так как среди анаграмм есть повторяющиеся, которые получатся перестановкой букв “а”, то:
2) 362880 : 2 = 181440 (анаграмм) − слова “факториал” существует.
Ответ: 181440 анаграмм

Решение б

В слове “перестановка” 12 букв, из них две пары повторяющихся букв, значит:
1) 12! = 1 * 2 * 3 * 4 * 5 * 6 * 7 * 8 * 9 * 10 * 11 * 12 = 479001600 (анаграмм) − всего;
так как среди анаграмм есть повторяющиеся, которые получаются перестановкой букв “е” и “а”, то:
2) 479001600 : (2 * 2) = 479001600 : 4 = 119750400 (анаграмм) − слова “перестановка” существует.
Ответ: 119750400 анаграмм

Решение в

В слове “комбинаторика” всего 13 букв, из них четыре пары повторяющихся букв, значит:
1) 13! = 1 * 2 * 3 * 4 * 5 * 6 * 7 * 8 * 9 * 10 * 11 * 12 * 13 = 6227020800 (анаграмм) − всего;
так как среди анаграмм есть повторяющиеся, которые получаются перестановкой букв “о”, “к”, “и”, “а”, то:
2) 6227020800 : (2 * 2 * 2 * 2) = 6227020800 : 16 = 389188800 (анаграмм) − слова “комбинаторика” существует.
Ответ: 119750400 анаграмм

Студворк — интернет-сервис помощи студентам

Здравствуйте, решаю задачу, но не знаю какой цикл использовать и как его задать. Суть задачи проста, в консоль вводят слово, далее подсчитуем количество символов, потом необходимо подсчитать факториал из длины строки, а потом проходя по циклу нужно искать одинаковые буквы (елементы), а потом в зависимости от количества одинаковых елементов, нужно поделить до этого полученый факториал на количество одинаковых букв.
Например,
Вводим

Далее считаем количество букв (4), считаем факториал из 4 (24), а потом уже идет цикл, который исчет одинаковые буквы (2=”ОО”), а потом делит на количество букв, что повторяються (2). В итоге получаем 24/2=12 это и есть нужный и правильный ответ

Вот, набросок подсчет длинны и факториала, а вот цикла не хватает.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <string>
using namespace std;
double fact(unsigned long n);
int main()
{
    char s[14];
    scanf("%s", &s);
    int d=strlen(s);
    printf("%un",d);
           int x=fact(d);
 
    
    return 0;
}
double fact(unsigned long n)
{
    double c=(n<1)?1:n;
    if (1<(n-=1))
        c*=fact(n);
    return c;
}

Здравствуйте.

Помогите решить задачу на паскале. С клавиатуры вводится слово, состоящее из заглавных латинских букв. Определите, сколько различных анаграмм можно составить из данного слова.

Пример работы программы:

TRANSPOSITION // данное слово
194594400 // количество анаграмм данного слова!

Заранее спасибо. =)

Кстати, вот мои наработки:

var    
    s, s1: string;    
    i, j, kol, fac, fact, q, res, w: longint;    
begin    
    readln(s);    
    q:= 1;    
    fac:= 1;    
    for i:= 1 to length(s) do    
        begin    
            fac:= fac*i;    
        end;    
    for i:=1 to length(s) do    
        begin    
            kol:= 0;    
            s1:= s[1];    
            for j:= 1 to length(s) do    
                begin    
                    if s1=s[j] then    
                        begin    
                            inc(kol);    
                            delete(s, j, 1);    
                        end;    
                end;    
            fact:= 1;    
            for j:= 1 to kol do    
                begin    
                    q:= q*j;    
                end;    
        end;    
    res:= fac div q;    
    writeln(res);    
end.

Добавить комментарий