Matemática, perguntado por hobyn, 5 meses atrás

Joãozinho está aprendendo a ler e escrever. Durante um exercício de leitura, percebeu a existência de um conceito que ele não sabe identificar: as palavras RUMO e MURO possuem as mesmas letras, mas em posições diferentes. Ele começa a se questionar quantas palavras podem existir somente trocando essas letras de lugar. Sem saber, Joãozinho acabou de descobrir o conceito dos anagramas. Anagramas são todas as permutações possíveis das palavras trocando apenas as letras de posições.

Douglas vendo a curiosidade do irmão e como estudante de ciências da computação quis elaborar o seguinte programa para ajudá-lo a encontrar todas as possibilidades de anagramas com o seguinte pseudocódigo(imagem):



Caso Joãozinho utilize o algoritmo abaixo para com o seu próprio apelido, que possui 9 letras, quantas vezes a função PERMUTAÇÃO deve ser chamada:

Anexos:

Soluções para a tarefa

Respondido por PhillDays
5

Como o algoritmo de Douglas apresenta um erro estrutural, então, independente da quantidade de vezes que a função for chamada, ela não retornará o valor correto para Joãozinho.

Para realizar este exercício vamos relembrar a estrutura dos anagramas.

Anagramas

Assim denominamos todas as combinações possíveis (porém que resultam em diferentes resultados) feitas entre as letras de uma palavra.

Se todas as N letras forem diferentes, então teremos uma multiplicação da forma N * (N-1) * (N-2) * ... * 2 * 1, que pode ser reescrita na forma de N!

ex. perigo (6! = 720)

Se tivermos 1 letra que se repete 2 vezes () então teremos de dividir N! pelo número de combinações repetidas, ou seja, aquelas resultantes das trocas entre aquele par de letras (2!).

ex. arroz (4! / 2! = 24 / 2 = 12)

Se tivermos 2 letras que se repetem 2 e 3 vezes respectivamente então, de semelhante forma, teremos de dividir N! pelo número de combinações repetidas.

ex. arara (5! / (2! * 3!)) = 120 / 12 = 10

Joãozinho

Analisando o apelido de Joãozinho podemos observar que a letra "o" se repete 3 vezes, sendo a única que se repete. Sendo assim teremos:

9! /3! = 362.880 / 6 = 60.840

O algoritmo de Douglas

Analisando o algoritmo dado, notamos que ao colocar ali seu apelido, Joãozinho receberá o seguinte número na tela:

8 * 9 = 72

O que é bem diferente do 60.840 que encontramos.

Conclusão

O algoritmo de Douglas precisa ser reescrito para, ao invés de (N - 1) * N ele faça N! e de alguma forma também pergunte quantas letras diferentes se repetem e quantas vezes elas se repetem para poder realizar a divisão corretamente e encontrar a resposta correta.

Continue estudando sobre anagramas aqui: https://brainly.com.br/tarefa/112899

#SPJ9


Usuário anônimo: ...
Usuário anônimo: ??
Usuário anônimo: ...
Usuário anônimo: ??
Usuário anônimo: ...
Usuário anônimo: ??
Usuário anônimo: ...
Usuário anônimo: ??
Usuário anônimo: ...
nattezz: ????????//
Perguntas interessantes