Está en la página 1de 1

TALLER DE BACKTRACKING

El taller debe ser desarrollado por grupos de dos alumnos, se debe entregar una posible
solucion algortmica en clases y posteriormente en el laboratorio se debe implementar el
algoritmo propuesto.
1) Se tienen N elementos distintos almacenados en una estructura de acceso directo (por
ejemplo, un vector con los nmeros 1, 2, 3, 4 y 5, o la cadena abcdefg) y se quiere
obtener todas las formas distintas de colocar esos elementos, es decir, hay que conseguir
todas las permutaciones de los N elementos. Disear un algoritmo que use Backtracking
para resolver el problema.
2) Resolver el problema anterior considerando la posibilidad de que los elementos se
repitan entre s (por ejemplo, el vector 1, 2, 1, 3, 2 o la cadena acabada).
3) Se ha recibido un mensaje de texto, aunque est codificado como el valor numrico
codigo = 903900439651484; se sabe que cada dgito de codigo se corresponde
con una letra distinta, pero no se sabe cul. Obviamente, para poder descodificarlo se
necesita la tabla de conversin entre letras y dgitos.
Para obtener la relacin existente entre letras y nmeros hay que resolver la siguiente suma:

sabiendo que:

Cada letra es una nica cifra para todo el problema. Por ejemplo, si la letra R
fuese 3 este dato valdra para todas las R de las palabras HARRY, POTTER y
TROLLS, y adems el 3 del mensaje codigo se sustituira por la letra R.
Cuando las letras de la suma se sustituyen por su valor, la operacin aritmtica debe
ser correcta. Es decir, no es posible que Y valga 1, R valga 2 y S valga 8.
Los nmeros que aparecen en la suma no pueden empezar por 0.
Solo existe una solucin al problema.

Disear un algoritmo que mediante tcnicas de Backtracking encuentre, de forma


eficiente en la medida posible, la tabla de conversin entre letras y dgitos necesaria
para poder descodificar el mensaje codigo.

También podría gustarte