Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Plan de intervencin:
Prez Soria Valtiare Alondra: Presentacin del equipo de trabajo, presentacin
del trabajo a exponer (tema y subtema), objetivo a lograr, introduccin y
explicacin de las reglas del juego. 4 minutos
Cruz Prez Daniela: Exposicin de breve resea histrica del problema,
planteamiento de una pregunta acerca del problema en un caso general y tanto
como su posible solucin y analoga. 3 minutos
Jimnez Garca Alexis: Proceso algortmico para la resolucin del juego
(algoritmo simple), explicacin del proceso algortmico en trminos de
programacin, su complejidad as como el cdigo; y la implementacin en un
ejercicio simple (en el cdigo). 7 minutos
Cruz Prez Daniela: Conclusin y presentacin de referencias. 1 minuto
Medios tcnicos: Computadora, can, presentacin en Power Point, cartel,
IDE de programacin.
Resea histrica:
No se conoce el origen de este juego. Aparece, con el nombre un juego de
peones, en el libro Rcrations mathmatiques vol.2 (Recreaciones
Matemticas vol. 2) del matemtico francs douard Lucas (1842-1891),
publicado en el ao 1883. En el mismo se estudian las soluciones para los
casos particulares de 2, 3 y 4 fichas de cada color. La verdad es que este
solitario ya aparece desde finales del siglo XIX con una multitud de muy
distintos nombres: frogs and toads -ranas y sapos- (o muchos otros nombres
que mencionan a las ranas, como jumping frogs -ranas saltarinas- o el salto
de la rana, nombre por el que es conocido en castellano), right and left
puzzle, sheeps and goats ovejas y cabras-, etc o no se le asigna nombre
y simplemente se hace uso de sencillas referencias como la de E. Lucas, un
juego de peones.
Problema:
Si tuvisemos n cantidad de ranas de cada color, cul es la mnima cantidad
de movimientos necesarios que se deben realizar para colocar las ranas verdes
en el lado de las ranas marrn y de manera anloga las marrn?
Solucin:
Mediante un algoritmo de fcil implementacin encontrar una frmula general
que nos permita resolver de forma directa la cantidad de movimientos
necesarios a realizar como forma de sucesin cuando tengamos n ranas de
cada color colocadas en el juego.
Analoga: Como lo expuesto en la resea histrica este juego y el algoritmo
prximo a exponer se pueden reflejar en varios juegos de intercambio todos del
tipo right and left puzzle.
ALGORITMO (SIMPLE)
1.- Se identifica en nmero de ranas de cada color
2.-Eleguir que color se mueve primero (verdes o marrones)
3.-El color de rana que comenzara el juego realizara solo un movimiento
4.-Cuando se haga un cambio de color los movimientos de las ranas de cada
color irn aumentando gradualmente (es decir se empieza por ejemplo con un
solo salto de las ranas verdes, despus saltaran 2 ranas marrones, despus 3
ranas verdes y as sucesivamente; siempre que el nmero de las ranas lo
permita).
5.- Si la cantidad de ranas de cada color coincide con la cantidad de
movimientos que debe de realizar en ese instante, se repetir esa cantidad de
movimientos 2 veces ms sin olvidar la intercalacin entre los colores.
6.-Si no, continuar con paso 4.
7.-Si se cumple el paso 5 empezara un decremento de la cantidad de
movimientos que realizaran las ranas de cada color hasta llegar al nmero de
movimientos inicial
Ejemplificacin del algoritmo:
Ranas verdes=V
Ranas marrones=M
Espacio sin rana=0
0.V V V 0 M M M
1.V V V M 0 M M Comienza con un solo movimiento de las ranas marrn
2.V V 0 M V M M Comienza el aumento gradual de movimientos
3.V 0 V M V M M
4.V M V 0 V M M
5.V M V M V 0 M
6.V M V M V M 0 Aqu se cumple la validacin del paso 5
7.V M V M 0 M V Comienzo de la repeticin de la cantidad de movimientos
8.V M 0 M V M V
9.0 M V M V M V
10.M 0 V M V M V
11.M M V 0 V M V
12.M M V M V 0 V Termino paso 5
13.M M V M 0 V V Empieza paso 7
14.M M 0 M V V V
15.M M M 0 V V V Fin del algoritmo
#define TRUE 1
#define FALSE 0
int conjunto_soluciones[5][5];
int soluciones_parciales;
int main()
{
int arreglo[] = {3, 4, 0, 1, 2};
encontrar_solucion(arreglo, 5);
return 0;
}
if (total == 0)
return FALSE;
for (int i = 0; i < total; ++i)
{
//printf("Probando opcion %d: ", i);
//imprimir_arreglo(conjunto_soluciones[i], size);
if (encontrar_solucion(arreglo_soluciones[i], size) == TRUE)
{
printf("Solucion: ");
imprimir_arreglo(arreglo_soluciones[i], size);
return TRUE;
}
//printf("No es encontro solucion, regresando\n");
}
return FALSE;
}
soluciones_parciales = 0;
conjunto_soluciones[soluciones_parciales][elemento_vacio + 1] =
temp;
soluciones_parciales++;
}
}
if (elemento_vacio - 1 > 0)
{
if (solo_derecha(arreglo[elemento_vacio - 1]))
{
for (int i = 0; i < size; ++i)
{
conjunto_soluciones[soluciones_parciales][i] = arreglo[i];
}
int temp = conjunto_soluciones[soluciones_parciales]
[elemento_vacio];
conjunto_soluciones[soluciones_parciales][elemento_vacio] =
conjunto_soluciones[soluciones_parciales][
elemento_vacio - 1];
conjunto_soluciones[soluciones_parciales][elemento_vacio - 1] =
temp;
soluciones_parciales++;
}
}
if (elemento_vacio - 2 >= 0)
{
if (solo_derecha(arreglo[elemento_vacio - 2]))
{
for (int i = 0; i < size; ++i)
{
conjunto_soluciones[soluciones_parciales][i] = arreglo[i];
}
if (valor < 3)
return TRUE;
return FALSE;
}
Numero de ranas
Cantidad de
movimientos
Calculo
(2^2)-1=((1+1)^2)-1
(3^2)-1=((2+1)^2)-1
.
.
.
N
(n^2)-1
CONCLUSIN:
Viendo la relacin que existe entre el nmero de ranas y la cantidad de
movimientos que se deben de realizar para poder realizar el intercambio,
podemos encontrar una frmula general para calcular el ensimo trmino de la
sucesin de movimientos.
Al igual que podemos comprobar que el algoritmo desarrollado es
computacional ya que se puede programar, es cualitativo ya que permiten dar
solucin a casos cotidianos en donde no es necesario utilizar operaciones
matemticas para llegar a dicha solucin. y cuantitativo porque tambin se
puede recurrir a las matemticas para dar solucin al problema.
REFERENCIAS
https://prograyalgo2012.wikispaces.com/Diagrama+de+Flujo
https://revistasuma.es/IMG/pdf/14/050-059.pdf
http://culturacientifica.com/2014/01/15/el-salto-de-la-rana-y-familia/