
ayuda.. tarea de prolog.. EJERCICIO2.. COMO HACERLO??
Publicado por NAYREEN (2 intervenciones) el 22/05/2015 20:51:57
Ejercicio 2.
Dada cierta lista cuyo alfabeto es {c,g,t,a} y un patrón (subsecuencia) dado, se desea un método que determine:
1. Si hay patrones repetidos.
2. Si al menos un par de tales patrones están separados por una distancia no mayor a un valor D dado.
3. Si hay mas de un par de patrones.
Condiciones:
Todos los patrones deben ser reportados. El método recibe como entrada la secuencia problema, Lp; el patrón a buscar, P (que puede ser de cualquier longitud); y la distancia máxima que debe verificarse. El método debe devolver la posición de los patrones hallados en pares y la distancia precisa que los separa. Por ejemplo, dados:
Lp=[a,a,a,a,c,c,c,g,a,a,a,a,t,t,t,t,g,c,c,c,g,g]. (Lista problema)
D=40 (Distancia máxima entre patrones)
P=[c,c,c] (Patrón a explorar)
Consulta Prolog:
?-patrones_rep([a,a,a,a,c,c,c,g,a,a,a,a,t,t,t,t,g,c,c,c,g,g], [c,c,c], 40, Ls).
Respuesta:
Ls=[(5,18,10)].
Nótese que si existiese otra ocurrencia, la solución podría ser:
Ls=[(5,18,10),(290,310,17)].
¿Cuál sería la solución en el siguiente caso?:
?-patrones_rep([a,a,a,a,c,c,c,g,a,a,a,a,t,t,t,t,g,c,c,c,c,c,a,a,a,a,c,c,c,g,a,a,a,a,t,t,t,t,g,c,c,c,c,c], [c,c,c], 40, Ls).
Trate de hallarla primero manualmente.
Dada cierta lista cuyo alfabeto es {c,g,t,a} y un patrón (subsecuencia) dado, se desea un método que determine:
1. Si hay patrones repetidos.
2. Si al menos un par de tales patrones están separados por una distancia no mayor a un valor D dado.
3. Si hay mas de un par de patrones.
Condiciones:
Todos los patrones deben ser reportados. El método recibe como entrada la secuencia problema, Lp; el patrón a buscar, P (que puede ser de cualquier longitud); y la distancia máxima que debe verificarse. El método debe devolver la posición de los patrones hallados en pares y la distancia precisa que los separa. Por ejemplo, dados:
Lp=[a,a,a,a,c,c,c,g,a,a,a,a,t,t,t,t,g,c,c,c,g,g]. (Lista problema)
D=40 (Distancia máxima entre patrones)
P=[c,c,c] (Patrón a explorar)
Consulta Prolog:
?-patrones_rep([a,a,a,a,c,c,c,g,a,a,a,a,t,t,t,t,g,c,c,c,g,g], [c,c,c], 40, Ls).
Respuesta:
Ls=[(5,18,10)].
Nótese que si existiese otra ocurrencia, la solución podría ser:
Ls=[(5,18,10),(290,310,17)].
¿Cuál sería la solución en el siguiente caso?:
?-patrones_rep([a,a,a,a,c,c,c,g,a,a,a,a,t,t,t,t,g,c,c,c,c,c,a,a,a,a,c,c,c,g,a,a,a,a,t,t,t,t,g,c,c,c,c,c], [c,c,c], 40, Ls).
Trate de hallarla primero manualmente.
Valora esta pregunta


0