martes, junio 25, 2024
Home Blog Page 36

Video: Se salvaron del accidente [HUMOR]

0

Una compilacion mas  de una coleccion increible de los mejores videos para el Humor:

Disfruten, feliz fin de semana.

El problema de los misioneros y los canibales, incluye codigo en prolog

0

Tres misioneros y tres caníbales están en una de las márgenes de un río junto a un bote en la que sólo cabe 1 o 2 personas. Hay que encontrar la manera de pasarlos al otro lado del río pero teniendo cuidado que en ningún momento quede un grupo de misioneros junto con un grupo  de caníbales, siendo la cantidad de misioneros menor a la de caníbales.
DEFINICION DEL PROBLEMA:
Se debe considerar una secuencia ordenada de 3 números que representarán: la cantidad de
misioneros, caníbales y en que orilla del río se encuentran.
Por lo tanto, el estado inicial será: 3,3,1.
El estado objetivo será: 0,0,0 en la orilla izquierda y 3,3,1 en la orilla derecha.
Operadores posibles:
Pueden ser que un bote:

  • No lleva ningún misionero y lleva un caníbal.
  • Lleva 2 misioneros y ningún caníbal.
  • Lleva 2 caníbales y ningún misionero.
  • Lleva 1 caníbal y un misionero.
  • No lleva ningún caníbal y lleva un misionero.

Solo está permitido si hay igual o más misioneros que caníbales en una orilla o no hay
misioneros que afectar en una orilla.
Se utilizará la búsqueda preferente por profundidad o depth search first.
En la búsqueda preferente por profundidad siempre se expande uno de los nodos que se
encuentre en los más profundo de árbol, por lo tanto los nodos sucesores estarán a
profundidades cada vez mayores.

Enlace al juego 

DESARROLLO EN PROLOG:

/* Problema de los Caníbales y Misioneros usando búsqueda Depth First
Desarrollado en : Visual Prolog v. 5.1
(versión gratuita de Prolog (VIP.exe) bajada de : www.visual-prolog.com ).
Autor : Javier Navarrete T.
******************************************************************************************** */
domains
orilla=orilla(byte,byte,byte)
bote=bote(byte,byte)
hecho=hecho(orilla,orilla)
database - canymis
hecho(orilla,orilla)
predicates
ejecutar.
profundidad(orilla,orilla).
ejecutar_movimiento(orilla,orilla,orilla,orilla).
movimiento(orilla,orilla,orilla,orilla).
imprime_estado(orilla,orilla).
invertir_orillaOproceder(orilla,orilla,orilla,orilla).
mostrar_movimiento(bote).
movimiento(bote).
permitido(orilla).
adicionar(orilla, bote, orilla).
quitar(orilla, bote, orilla).
aplicable(orilla,bote).
mostrar_bote(byte).
clauses
ejecutar :- /* llama a ejecutar para resolver */
assert(hecho(orilla(3,3,1), orilla(0,0,0))), /* estado inicial */
/* Estado INICIAL = 3 misioneros, 3 caníbales y 1 bote en la orilla izquierda
y nada en la orilla derecha */
profundidad(orilla(3,3,1),orilla(0,0,0)). /* busca a partir de este estado */
/* 5 posibles movimientos - no necesariamente permitidos */
movimiento(bote(0,1)). /* No lleva ningún misionero y lleva un caníbal */
movimiento(bote(2,0)). /* Lleva 2 misioneros y ningún caníbal */
movimiento(bote(0,2)). /* Lleva 2 caníbales y ningún misionero */
movimiento(bote(1,1)). /* Lleva 1 caníbal y un misionero (se supone que hay un barquero que los cuida)*/
movimiento(bote(1,0)). /* No lleva ningún caníbal y lleva un misionero */
/* si la situación es permitida */
permitido(orilla(0,_,_)) :- !. /* corte continua donde quedó */
permitido(orilla(M,C,_)) :- M >= C. /* si hay igual o más misioneros que canibales para que no se los coman */
profundidad(orilla(0,0,0),orilla(3,3,1)) :- /* si se encuentra el estado objetivo */
/* Estado OBJETIVO = 3 misioneros, 3 caníbales y 1 bote en la orilla derecha
y nada en la orilla izquierda */
nl,write(" >> Objetivo encontrado << "), nl, nl.
profundidad(Izq,Der) :-
/* Si no es el ESTADO OBJETIVO efectúa la búsqueda */
ejecutar_movimiento(Izq,Der,SgteIzq,SgteDer), /* ejecutar movimiento desde el estado actual */
imprime_estado(SgteIzq,SgteDer),
profundidad(SgteIzq,SgteDer). /* y llamarse recursivamente */
ejecutar_movimiento(Izq,Der,SgteIzq,SgteDer) :-
write("Toma la primera movida permitida que encuentren"),
movimiento(Izq,Der,SgteIzq,SgteDer), /* ver movimiento */
/* si no está el mov sgte. para no repetir situación */
not(hecho(SgteIzq,SgteDer)), /* para obtener un nuevo estado */
/* grabar el mov */
assert(hecho(SgteIzq,SgteDer)),
permitido(SgteIzq), permitido(SgteDer). /* ver si es permitido */
movimiento(orilla(MI,CI,1),Der,PSgteIzq,PSgteDer) :- /* si el bote está en la orilla izquierda */
/* Inicialmente recibirá :
en MI - misioneros a la izquierda 3
en CI - caníbales a la izquierda 3
y el 1 representa que el bote está en la orilla derecha */
invertir_orillaOproceder(orilla(MI,CI,1),Der,PSgteIzq,PSgteDer).
/* entonces el movimiento será de izquierda a derecha */
movimiento(orilla(ML,CL,0),Der,PSgteIzq,PSgteDer) :- /* si el bote está en la orilla derecha */
write("n <--> origen y destino n"),
invertir_orillaOproceder(Der,orilla(ML,CL,0),PSgteDer,PSgteIzq).
/* entonces el movimiento será de derecha a izquierda */
invertir_orillaOproceder(Origen,Destino,SgteO,SgteD) :- /* desde un origen a un destino */
/* Inicialmente recibirá :
en Origen - 3,3,1.
en Destino- 0,0,0.
*/
movimiento(BoteObtenido), /* obtener movimiento de de 5 posibles */
/* Pj si obtiene bote(0,1) */
/* verificar si orilla(3,3,1) el bote(0,1) es aplicable */
aplicable(Origen,BoteObtenido),
/* si opción es aplicable */
quitar(Origen,BoteObtenido,SgteO), /* tomar bote del origen */
/* 3,2,0 inicialmente adicionará un caníbal a la orilla derecha */
adicionar(Destino,BoteObtenido,SgteD), /* y adicionar al destino donde destino 0,0,0 inic */
mostrar_movimiento(BoteObtenido).
/* El movimiento es aplicable al estado */
aplicable(orilla(M,C,1), bote(Mbote,Cbote)) :-
/* inicialmente verá si orilla(3,3,1) y bote(0,1) es aplicable si
M(Cantidad de misioneros (3)) en mayor o igual la cantidad de misioneros en bote permitido (0),
como esto se cumple, ve si C(Cantidad de caníbales (3)) en mayor o igual que la cantidad de
caníbales permitidos en el bote según la combinación bote(0,1) permitida, como se cumple devuelve
un si.
*/
M >= Mbote, C >= Cbote. /* en otras palabras, hay suficiente de cada uno para llenar el bote? */
/* Quitar del origen */
quitar(orilla(MO,CO,1), bote(MB,CB), orilla(MCanti,CCanti,0)) :-
/* inicialmente recibirá orilla(3,3,1), bote(0,1) y un nuevo origen donde :
MCanti = la cantidad de misioneros que habia en la orilla origen (en este caso izq MO)
menos la cantidad de misioneros que suben al bote MB, cual dará 3
CCanti = igual para la cantidad de caníbales (3-1)=2
0 = indica la orilla izquierda
Quiere decir que la orilla izquierda quedará con 3,2,0 (3 mis y 2 cani) */
MCanti = MO-MB, CCanti = CO-CB.
/* Adicionar al destino */
adicionar(orilla(MD,CD,0), bote(MB,CB), orilla(MR,CR,1)) :-
/* Pj si el destino inicial es 0,0,0 y el bote (0,1) entonces :
MR = 0+0 = 0 misioneros a la orilla derecha por que no se transportó ninguno
CR = 0+1 = 1 caníbal a la orilla derecha por se transportó 1, el resultado
será que la orilla derecha tendrá 0 misioneros y 1 caníbal */
MR = MD+MB, CR = CD+CB.
imprime_estado(orilla(MIzq,CIzq,BoteI), orilla(MDer,CDer,_)) :- write("nLa orilla izquierda tiene : "),
write(MIzq), write(" misioneros y "), write(CIzq), write(" caníbalesn"),
write("La orilla derecha tiene : "), write(MDer), write(" misioneros y "),
write(CDer), write(" caníbalesn"), mostrar_bote(BoteI),
write("n>>>>>>>>>>>>>>>>>>Presione una tecla para
continuar<<<<<<<<<<<<<<<<<<<<n"),
readchar(_).
mostrar_movimiento(bote(M,C)) :- write("Movida : "), write(C), write(" caníbal(es) y "),
write(M), write(" misionero(s)n").
mostrar_bote(1) :- write("El bote está en la orilla izquierdan").
mostrar_bote(0) :- write("El bote está en la orilla derechan").
goal
ejecutar.

 

Impresionante tormenta de arena en Kuwait [VIDEO]

1

Estos videos fueron tomadas durante la tormenta de arena que el pasado viernes azotó Kuwai

Este hecho fue acompañado con vientos de hasta 80 kilómetros por hora y recorrió tanto el sur de Iraq como el noroeste kuwaití.

¿Cómo eliminar una particion CDFS de memorias USB U3 Smart?

0

U3 es una tecnología que implementan algunas memorias flash USB (Denominadas USB Smart Drive), las cuales tienen dos particiones:

* Una partición CDFS que emula un CD virtual (El cual puede utilizarse como unidad de arranque y por lo tanto puede cargar programas), la cual tiene preinstalado en el chip de memoria el softtware U3 Launchpad.
* Otra partición normalmente en FAT/FAT32 que tiene un directorio oculto con las aplicaciones que se pueden arrancar, y en la que podemos guardar archivos como en cualquier otra memoria USB.

U3 es compatible con Windows:

* 2000 SP4.
* XP.
* 2003 (Es la versión Server de XP).
* Vista.
* 2008 (Es la versión Sever de Vista por lo que deberian funcionar también en principio).
* 7/Seven.

Sin embargo en muchas ocasiones las memorias USB U3 dan “problemas” con ciertos dispositivos (Ej: Reproductores DVD con puerto USB) debido a que estos intentan arrancar la primera partición de arranque que es CDFS (La que contiene el software U3 Launchpad) y no la reconocen correctamente, dando como resultado una memoria flash inaccesible porque no son capaces de ver la otra partición en FAT/FAT32 que es la que nos interesa realmente.

Para eliminar la partición CDFS, no sirve ni el administrador de discos de Windows ni los programas de particionamiento (Ej: Gparted de Linux) ya que la partición esta “grabada” en la memoria flash es decir no esta creada como una partición “estándar” que pueda formatearse/particionarse.

Para solucionar esto se pueden hacer varias cosas:

1. Seguir los pasos que comenta Sandisk en su FAQ sobre U3 (Para otras memorias flash con U3 el proceso debería ser similar):

 

¿Se puede quitar la tecnología U3 de la unidad USB?

Sí. Si desea quitar la tecnología U3 de la unidad, vaya a U3 Launchpad. En Settings (parámetros), seleccione U3 Launchpad settings (parámetros de U3 Launchpad) y haga clic en Uninstall (desinstalar). Así se elimina U3 Launchpad por completo de la unidad.

Según da a entender lo que haría es desinstalar el programa U3 Launchpad de la partición CDFS dejándola “limpia” y por tanto se utilizaria sólo la partición de datos FAT/FAT32.

 

No seleccionar aqui si tiene que recuperar su informacion
No seleccionar aqui si tiene que recuperar su informacion

2. Utilizar la aplicación “U3 Launchpad Removal Tool” desarrollada por U3 (Información de Softonic), aunque parece ser que actualmente esta utilidad se encuentra en el sitio web de Sandisk.
3. Utilizar Universal Customizer del que se utiliza la aplicación “u3 uninstall.exe”.
4. Seguir este manual de New Web Star.

Hay que tener en cuenta que el proceso de desinstalar U3 Launchpad es reversible, es decir que si por cualquier razón necesitamos volver a instalar el software es posible, para ello se puede seguir alguno de estos métodos:

1. El que se comenta en el FAQ de Sandisk sobre u3:

¿Puedo restaurar la tecnología U3 después de quitarla?
Sí. El sitio Web de U3 de SanDisk pone a su disposición una utilidad de instalación de U3 Launchpad que sirve para volver a instalar esta característica en la unidad inteligente Cruzer (/Retail/DriverDownloads.aspx).

Utilizando el programa Instalador de U3 LaunchPad válido para Windows 2000 y XP.
2. Utilizando el Universal Customizer y cargando alguna de las ISO que tiene (Según parece la versión más actual de u3 Launchpad es la 1.6.2) como comentan en el foro Todo Ultraportatiles.es

 

[box type=”note” size=”large”]IMPORTANTE:Antes de realizar cualquier operación que pueda afectar a particiones y/o datos es más que aconsejable hacer una copia de seguridad (Back-Up) de los datos que contiene el dispositivo, ya que si se pierden su posible recuperación será más complicada.[/box]

[box type=”download”]Descargargratis | U3 Removal Tool[/box]

Mucha Suerte!

Los mejores #Fail del 2010, HUMOR

0

Para los que apenas es miercoles y ya estan presionados o con estres, reir les hara bien. Jajajaj.

Descarga Mozilla Firefox 4 , ya disponible

2

Mozilla Firefox 4 en su  version Release Cantidate (RC) ya esta disponible para su descarga y la verdad vale la pena probarlo.

Por supuesto, se recomienda actualizar lo antes posible. Así que, adelántate al resto y pincha en los enlaces. Espera, para las próximas horas, un análisis completo al respecto, esta mini noticia es solo para avisarte. ¡Que no todos los días tenemos un navegador completamente nuevo que probar! ¿Lo mejor? En cuatro meses debería llegar Firefox 5.

Firefox 4 RC final

 

Firefox 4  tiene una mejor apariencia , nueva interfaz, otras novedades interesantes que lo puedes probar descargando la esta nueva version:

Descargar Firefox 4 RC final

Explora la nueva barra e interfaz de complementos:

Complementos firefox 4 rc final

 

[box type=”download” size=”large” border=”full”]Descargar Firefox 4 Final Windows [/box]

[box type=”download” size=”large” border=”full”]Descargar Firefox 4 Final Mac[/box]

[box type=”download” size=”large” border=”full”]Descargar Firefox 4 Final Linux[/box]

Niño de 2 años tocando mejor la bateria que muchos [VIDEO]

0

Este niño de dos años es capaz de marcar varios ritmos en la batería .

Y en pijama..

 

 

Generador de tarjetas para el dia del Hombre

0

El Día Internacional del Hombre (DIH) se celebra el 19 de noviembre . Fue inaugurado en 1999 en Trinidad y Tobago, luego se extendió a Australia, Estados Unidos, Canadá, Rusia, Jamaica, Hungría, India, Italia, Nueva Zelanda, Brasil, Moldavia, Haití, Portugal, Singapur, Malta, Sudáfrica, Ghana, Chile, Colombia, Costa Rica, Hungría, Irlanda, Perú, Canadá, China, Vietnam, Pakistán , Guatemala , Dinamarca, Suecia, Noruega, Guyana, Holanda, Georgia, Argentina, México, Alemania, Austria, Inglaterra y Escocia. Actualmente es un evento internacional, apoyado por Naciones Unidas.

Sus objetivos son, como lo establece el comité organizador, abordar temas de salud de varones jóvenes y adultos, resaltar el rol positivo y las contribuciones que los varones hacen diariamente tanto a su comunidad como a la sociedad, promover la igualdad de género y celebrar la masculinidad

Para festejar este dia. Existen muchos sitios en la web que proporcionan muchas maneras de felicitar.

Tarjetaszea es una de ellas:

Terjetaszea, Generador dia del padre

Algunos ejemplos mas de tarjetas generadas son:

Se siente bonito estar cerca de ti.
Se siente bonito estar cerca de ti.

Otra mas:

Entre tu y yo suceden pequeñas cosas... Que te hacen grande para mi. Te amo
Entre tu y yo suceden pequeñas cosas... Que te hacen grande para mi. Te amo

Enlace al sitio: Terjetaszea