¿Cuántas palabras de 2 letras puedes obtener de aabcccddef?

14

(AA sería uno de muchos, bb no)

¡Pensé que serían 10! / 8! Pero aparentemente estoy haciendo algo mal. ¿Alguien puede ayudarme porque estoy perplejo?

Antonio
fuente
66
Gracias por mostrarnos lo que intentaste. ¿Podría explicar por qué pensó que sería 10! / 8! ya que esto podría ayudarnos a corregir cualquier malentendido conceptual que tenga? Además, ¿se trata de una pregunta de un curso o libro de texto? Si es así, agregue la [self-study]etiqueta y lea su wiki .
Silverfish
(Aunque el autor de esta pregunta originalmente no agregó la etiqueta "autoestudio", creo que esta pregunta se encuentra dentro de las pautas de autoestudio, por ejemplo, se han ocupado de mostrarnos lo que intentaron, y la pregunta en sí parece clara La respuesta de RoryT indica cuál fue probablemente la falla en el pensamiento detrás de la respuesta 10! / 8 !, aunque, por supuesto, sería bueno si el póster original pudiera confirmar esto.)
Silverfish
1
Algunos votan para cerrar esto como "poco claro". No puedo ver lo que no está claro aquí, y las respuestas dadas indican que la pregunta fue entendida y lo suficientemente clara.
kjetil b halvorsen
2
Para crear palabras de 2 letras, ¿por qué aparece 'c' 3 veces en la lista de letras disponibles?
3
@statman También me di cuenta de esto (ver comentarios más abajo) pero en retrospectiva admiro el ingenio de quien formula las preguntas al incluirlo. Si bien no es una adición cruel, requiere un momento extra de reflexión.
Silverfish

Respuestas:

22

Tiene 6 letras diferentes: a, b, c, d, e, f de las cuales puede generar 6 x 5 = 30 palabras con dos letras diferentes. Además, puede generar las 3 palabras aa, cc, dd con la misma letra dos veces. Entonces el número total de palabras es 30 + 3 = 33.

Zahava Kor
fuente
17

Una alternativa al método de Zahava: hay formas de emparejar dos de las letras af. Sin embargo, no hay 2 caracteres b, e o f, por lo que "bb", "ee" y "ff" no son posibles, lo que hace que el número de palabras 36 - 3 = 336 62=3636-3=33 .

La forma en que ha tratado de abordar el problema parece ignorar el hecho de que no hay 10 letras distintas. Si tuviera 10 letras distintas, entonces su respuesta sería correcta.

RoryT
fuente
44
(+1) ¡De hecho, el hecho de que haya diez letras es una especie de arenque rojo aquí, ya que tres de ellas eran "C"! En términos de cuántas palabras de dos letras se pueden formar, no habría importado si la "C" apareciera cincuenta veces. Cualquier cosa más que dos apariciones de la misma carta es redundante.
Silverfish
7

Si no puede razonarlo de una manera "inteligente", a menudo vale la pena probar la fuerza bruta. Imagínese tratando de escribir una lista ordenada alfabéticamente de todas las palabras que puede hacer.

¿Cuántos pueden comenzar con "A"? Bueno, "A" puede ser seguido por A, B, C, D, E o F, así que son seis formas.

¿Cuántos pueden comenzar con "B"? Esto puede ser seguido por A, C, D, E o F, que son solo cinco formas, ya que no hay una segunda "B".

¿Cuántos pueden comenzar con "C"? Dado que "C" aparece tres veces en su lista, puede ser seguido por sí mismo o por cualquiera de las otras cinco letras, así como con "A" hay seis formas. Tenga en cuenta que no obtenemos ninguna forma "extra" solo porque "C" aparece más veces que "A"; cualquier cosa más allá de una segunda aparición es redundante.

Con suerte, ahora está claro que cada letra que aparece solo una vez en su lista puede aparecer al comienzo de cinco palabras, y las letras que aparecen dos veces o más pueden aparecer al comienzo de seis palabras. Las letras que aparecen solo una vez son "B", "E" y "F", cada una de las cuales puede estar al comienzo de cinco palabras, de modo que 5 + 5 + 5 = 15 palabras. Las letras que aparecen dos veces o más son "A", "C" y "D", cada una de las cuales puede estar al comienzo de seis palabras, lo que hace que 6 + 6 + 6 = 18 palabras. En total hay 15 + 18 = 33 palabras.

Esto es más extenso que los otros métodos, pero al tratar de pensar en la respuesta de esta manera sistemática, es posible que haya podido "detectar" uno de los métodos más rápidos.

Tenga en cuenta que si esto se hubiera formulado como una pregunta de probabilidad, su primera inclinación podría haber sido dibujar un diagrama de árbol . Habría comenzado con seis ramas para la primera letra, pero para la segunda letra habría seis ramas saliendo de "A", "C" y "D" (porque pueden ser seguidas por cualquiera de las seis letras) pero solo cinco ramas que salen de "B", "E" y "F" (porque no pueden ser seguidas por sí mismas). Este patrón de ramificación es efectivamente el mismo que en mi respuesta, pero es posible que prefiera pensarlo más visualmente en un árbol.

Lepisma
fuente
1
El es muy cierto. Use la fuerza bruta (posiblemente con el Principio de inclusión-exclusión) para obtener una estimación aproximada, límite superior o límite inferior en la respuesta.
smci
3

Un enfoque matemático

Desde un punto de vista matemático, la solución es el conjunto de elementos del producto cartesiano entre la lista y sí mismo una vez eliminada la diagonal. Puede resolver este problema usando este algoritmo:

  • calcular el producto cartesiano entre su lista y sí mismo.
  • quitando la diagonal
  • crear un conjunto de la matriz

Un conjunto es una colección bien definida de objetos distintos, por lo tanto, los objetos no se repiten.

Traduciéndolo a Python

from itertools import product
import numpy as np

letters = list("aabcccddef")
cartesianproduct = np.array(["".join(i) for i in product(letters,letters)]).reshape(10,10)


cartesianproduct

Out :
array([['aa', 'aa', 'ab', 'ac', 'ac', 'ac', 'ad', 'ad', 'ae', 'af'],
       ['aa', 'aa', 'ab', 'ac', 'ac', 'ac', 'ad', 'ad', 'ae', 'af'],
       ['ba', 'ba', 'bb', 'bc', 'bc', 'bc', 'bd', 'bd', 'be', 'bf'],
       ['ca', 'ca', 'cb', 'cc', 'cc', 'cc', 'cd', 'cd', 'ce', 'cf'],
       ['ca', 'ca', 'cb', 'cc', 'cc', 'cc', 'cd', 'cd', 'ce', 'cf'],
       ['ca', 'ca', 'cb', 'cc', 'cc', 'cc', 'cd', 'cd', 'ce', 'cf'],
       ['da', 'da', 'db', 'dc', 'dc', 'dc', 'dd', 'dd', 'de', 'df'],
       ['da', 'da', 'db', 'dc', 'dc', 'dc', 'dd', 'dd', 'de', 'df'],
       ['ea', 'ea', 'eb', 'ec', 'ec', 'ec', 'ed', 'ed', 'ee', 'ef'],
       ['fa', 'fa', 'fb', 'fc', 'fc', 'fc', 'fd', 'fd', 'fe', 'ff']], 
      dtype='|S2')

Quitamos la diagonal

diagremv = np.array([ np.delete(arr,index) for index,arr in enumerate(cartesianproduct)]) 

diagremv

array([['aa', 'ab', 'ac', 'ac', 'ac', 'ad', 'ad', 'ae', 'af'],
       ['aa', 'ab', 'ac', 'ac', 'ac', 'ad', 'ad', 'ae', 'af'],
       ['ba', 'ba', 'bc', 'bc', 'bc', 'bd', 'bd', 'be', 'bf'],
       ['ca', 'ca', 'cb', 'cc', 'cc', 'cd', 'cd', 'ce', 'cf'],
       ['ca', 'ca', 'cb', 'cc', 'cc', 'cd', 'cd', 'ce', 'cf'],
       ['ca', 'ca', 'cb', 'cc', 'cc', 'cd', 'cd', 'ce', 'cf'],
       ['da', 'da', 'db', 'dc', 'dc', 'dc', 'dd', 'de', 'df'],
       ['da', 'da', 'db', 'dc', 'dc', 'dc', 'dd', 'de', 'df'],
       ['ea', 'ea', 'eb', 'ec', 'ec', 'ec', 'ed', 'ed', 'ef'],
       ['fa', 'fa', 'fb', 'fc', 'fc', 'fc', 'fd', 'fd', 'fe']], 
      dtype='|S2')

Calculamos la longitud del conjunto de elementos:

len(set(list(diagremv.flatten())))

Out: 33
GM
fuente
1
Me gusta que formalizaste y automatizaste el método de fuerza bruta
Tim Seguine
2

Creo que la razón por la que algunos piensan que la pregunta no está clara es porque usa el término "palabras de 2 letras". Dada la forma en que todos se acercan a una solución, todos interpretan "palabras de 2 letras" para que signifiquen algo así como "pares de letras". Como un ávido jugador de Scrabble, que tomó inmediatamente la cuestión en el sentido de: "¿Cuántos legítimos palabras de 2 letras se pueden hacer de estas cartas?" Y eso respuesta es - 12! Al menos, según la última edición del Diccionario Oficial de Jugadores de Scrabble (OSPD5). Las palabras son aa, ab, ad, ae, ba, be, da, de, ed, ef, fa y fe. (¡Tenga en cuenta que el hecho de que nunca haya oído hablar de muchas de estas palabras no niega su validez!); O)

Solo mi "sentido 2".

Micrófono
fuente
1

Otra forma de contar sin fuerza bruta:

Si la primera letra es a, c o d, quedan 6 opciones distintas para la segunda letra.

Pero si la primera letra es b, e o f, solo quedan 5 opciones distintas para la segunda letra.

Entonces hay 36 6+35 5=33 Distintas palabras de dos letras.

Tim Seguine
fuente
0

Hay un problema en la forma en que haces tu pregunta. ¿Qué acciones están permitidas en la línea "aabcccddef" para tomar una palabra de 2 letras? ¿Podemos reemplazar lo último o solo cruzar lo innecesario? He encontrado dos respuestas posibles dependiendo de estas condiciones:

1) Podemos reemplazar las letras de cualquier manera, la respuesta como 33 como se mencionó anteriormente. 30 pares de letras diferentes (6 * 5) y 3 pares de letras similares.

2) Si no podemos cambiar el lugar de las letras y solo podemos cruzar, obtendremos mucha menos respuesta. Vamos a contar de principio a fin. Comenzando con "a" tenemos 6 letras para ser el segundo, comenzando con "b" es solo 4. "c" también tiene 4, "d" - 3 y "e" - 1. Eso es 18 totalmente.

Fixerlt
fuente
-1

mi respuesta a la pregunta: ¿Cuántas palabras de 2 letras puedes obtener de aabcccddef

  1. Automóvil club británico; 2. ab; 3. ad; 4. ae; 5. ad; 6. ba; 7. ser; 8. de; 9. fa; 10. fe

* // El punto es que la pregunta dice "palabras", no combinaciones de pares. Usando palabras, la letra tendría que aparecer dos veces para usar la palabra más de una vez, por ejemplo, hay dos de la letra 'a' y dos de la letra 'd', por lo tanto, es posible escribir 'ad' como palabra dos veces.

Chloe F. Gundst
fuente