Equipo
viernes, 29 de octubre de 2010
miércoles, 20 de octubre de 2010
Tarea # 5 Problema Lógico
Caníbales y Misioneros
Tres misioneros y tres canibales se encuentran juntos, con un bote, en el mismo lado del rio, el bote puede transportar como maximo 2 personas . La unica manera segura de hacerlo es que en cada orilla del río nunca puedan haber mas canibales que misioneros, ¿Como podemos trasladar a las 6 personas de un lado del rio al otro?
En seguida pondré los pasos que realice para encontrara la solución al problema.
Comencé con los 3 misioneros y los 3 caníbales del lado derecho y tendrán que cruzar al lado izquierdo del río :
C= caníbales
M=misioneros
Estado inicial
Lado Izquierdo Lado derecho
0M; 0C 3M; 3C
2C 3M; 1C
1C 3M; 2C
3C 3M
2C 3M; 1C
2C; 2M 1M; 1C
1C; 1M 2M; 2C
1C; 3M 2C
3M 3C
3M; 2C 1C
3M; 1C 2C
3M; 3C
Este es un link del problema de "caníbales y misioneros" en el que podrán probar mi solución o encontrar alguna otra: http://www.plastelina.net/games/game2.html
Prolog
Y aquí el código en Prolog
% predicado a llamar desde la consola (esto lo usaremos para mostrar el resultado)
resolverCanMis(S):- busquedaProf(estado(3,3,0,0,0),[estado(3,3,0,0,0)],S).
Tres misioneros y tres canibales se encuentran juntos, con un bote, en el mismo lado del rio, el bote puede transportar como maximo 2 personas . La unica manera segura de hacerlo es que en cada orilla del río nunca puedan haber mas canibales que misioneros, ¿Como podemos trasladar a las 6 personas de un lado del rio al otro?
En seguida pondré los pasos que realice para encontrara la solución al problema.
Comencé con los 3 misioneros y los 3 caníbales del lado derecho y tendrán que cruzar al lado izquierdo del río :
C= caníbales
M=misioneros
Estado inicial
Lado Izquierdo Lado derecho
0M; 0C 3M; 3C
2C 3M; 1C
1C 3M; 2C
3C 3M
2C 3M; 1C
2C; 2M 1M; 1C
1C; 1M 2M; 2C
1C; 3M 2C
3M 3C
3M; 2C 1C
3M; 1C 2C
3M; 3C
Este es un link del problema de "caníbales y misioneros" en el que podrán probar mi solución o encontrar alguna otra: http://www.plastelina.net/games/game2.html
Prolog
Y aquí el código en Prolog
resolverCanMis(S):- busquedaProf(estado(3,3,0,0,0),[estado(3,3,0,0,0)],S).
miércoles, 13 de octubre de 2010
Reporte #4 Lenguajes Funcionales (CORREGIDO)
Los lenguajes que elegí fueron R y Haskell:
Y use las funciones para obtener el mínimo y el máximo valor de cada matriz:
Bibliografía
http://it.ciidit.uanl.mx/~sara/pres/lp/leng_s8.pdf
http://cran.r-project.org/doc/contrib/Short-refcard.pdf
http://www.haskell.org/haskellwiki/Learn_Haskell_in_10_minutes
http://en.wikibooks.org/wiki/R_Programming
http://es.wikipedia.org/wiki/Haskell
http://es.efreedom.com/Question/1-1105765/Generacion-de-numeros-de-Fibonacci-en-Haskell
Primero declare las matrices que utilizare "x" y "y" :
Hice que "x" tomo los valores de 1 a 15, y después di las dimensiones de la matriz que es 5x3
Después declare la matriz "y" con una secuencia de números a partir del 2 hasta el 30 de 2 en 2, y le di las dimensiones 5x3.
Después use la función sum( ) para sumar los elementos de cada matriz:
También hice operaciones con las matrices:
Suma
ProductoY use las funciones para obtener el mínimo y el máximo valor de cada matriz:
*** Les dejo una tarjeta de referencia para R por si la necesitan:
http://cran.r-project.org/doc/contrib/Short-refcard.pdf
Haskell
Programa que calcula la serie de Fibonacci:
fib :: Integer -> Integer
fib 0 = 1
fib 1 = 1
fib n = fib (n-1) + fib (n-2)
Bibliografía
http://it.ciidit.uanl.mx/~sara/pres/lp/leng_s8.pdf
http://cran.r-project.org/doc/contrib/Short-refcard.pdf
http://www.haskell.org/haskellwiki/Learn_Haskell_in_10_minutes
http://en.wikibooks.org/wiki/R_Programming
http://es.wikipedia.org/wiki/Haskell
http://es.efreedom.com/Question/1-1105765/Generacion-de-numeros-de-Fibonacci-en-Haskell
Suscribirse a:
Entradas (Atom)