jueves, 16 de diciembre de 2010

Historias de un tanteo (2)

 (Esta entrada y su primera parte publicada el día 13 constituyen la colaboración de este blog en la IX edición del  Carnaval de Matemáticas, que este mes tiene como anfitrión a @trebede desde sus Rescoldos en la Trébede)


¿Cómo simular las historias posibles de un tanteo de 5 goles a 2? (Ver entrada anterior)

Si disponemos de una moneda, podemos asignar la cara al equipo A y la cruz al B. Si el resultado es 5-2, pararemos la simulación cuando A llegue a 5 o B llegue a 2 y, en ambos casos completaremos sin tirar la moneda. Por ejemplo, si la moneda nos ha proporcionado la lista de goles AABAB, completaremos hasta AABABAA, ya sin el uso del azar. Si nos resultara AAAAA la convertiríamos en AAAAABB.

Si te interesa el diseño en hoja de cálculo, te ofrecemos una simulación en la que las celdas importantes tienen todas la misma fórmula. Esto último constituye un condicionante muy útil para aprender a usar la función condicional SI.

Antes de nada, estudiemos el esquema de decisión de la simulación. Lo ordenaremos como un organigrama o árbol de decisión. La idea es que la celda que contenga la fórmula genere el símbolo A o el B de forma aleatoria, pero que pare y rellene cuando el tanteo se haya completado. Proponemos el siguiente:
 
Las variables usadas significan:

Total: Número total de goles del tanteo
Parcial: Goles totales que ya se llevan.
GA: Goles que lleva A
GB: Goles que lleva B
TA: Total de goles de A en el tanteo
TB: Ídem de B

Esta estructura da una fórmula para las celdas que contendrán los goles A ó B:




Impresiona un poco, ¿verdad?.

Si deseas estudiar más a fondo esta estructura de celdas, descarga este archivo:

http://hojamat.es/blog/tanteos.zip


Y ahora vamos con el peligro: esta simulación no produce sucesos equiprobables. En el caso del tanteo de 2 a 2, por ejemplo, resultarían más casos en AABB y BBAA que en el resto. Puedes verlo en este listado procedente de una simulación:





Si se estudia la simulación mediante un diagrama en árbol se comprenden mejor las probabilidades. Lo concretamos para un tanteo de 2-2




Los círculos de color naranja representan los momentos de parada de la simulación y su posterior relleno con A o B. Se percibe claramente la diferencia de probabilidades.

Para evitar esto se deben organizar las simulaciones completas, con todos los goles fijados, y después desechar los que no coincidan con el tanteo previsto. Por ejemplo, para simular un 3-1 tiraremos cuatro monedas seguidas, lo que nos producirá casos como AAAA, BABA que habrá que desechar, y quedarnos sólo con AAAB, AABA, ABAA y BAAA. De esta forma obtendremos sucesos equiprobables.

lunes, 13 de diciembre de 2010

Historias de un tanteo (1)

(Esta entrada y su segunda parte que publicaremos dentro de unos días constituye la colaboración de este blog en la IX edición del  Carnaval de Matemáticas, que este mes tiene como anfitrión a @trebede desde sus Rescoldos en la Trébede)


Ideas para el aula y la programación

Hace tiempo que no dábamos vueltas a una cuestión. Así que vamos a por una, que además puede tener utilidad en las aulas.

Un partido de fútbol terminó con el resultado de 5 a 2. ¿Qué tanteos previos, incluido el 0 a 0, se pudieron dar? ¿Cuántas historias pudo tener el partido hasta llegar a ese resultado final?

Este es un problema que suele figurar en textos de Combinatoria de tipo elemental o medio. La primera pregunta es muy sencilla: como los goles caen de uno en uno, para llegar al 5-2 se ha pasado por 8 tanteos (con el 0 a 0).  Respecto al número posible de historias o desarrollos, en este caso existen 21.

Si llamamos A a un equipo y B a otro, la secuencia de goles puede haber sido

AAAAABB, AAAABAB; AAABAAB, AABAAAB, ABAAAAB, BAAAAAB, AAAABBA,
AAABABA, AABAABA, ABAAABA, BAAAABA, AAABBAA, AABABAA, ABAABAA,
BAAABAA, AABBAAA, ABABAAA, BAABAAA, ABBAAAA, BABAAAA, BBAAAAA

Pensando en el uso de esta cuestión en las aulas, se puede aprovechar en varios tipos de aprendizajes distintos:

Representación

Si el alumnado ha entendido lo que se pide, ¿cómo podría representar la historia de un partido? Se podría sugerir que se inventaran varias formas, y no sólo una, pues en ese caso la que surgiría más natural es la de escribir los tanteos y perderíamos otras posibilidades. Por ejemplo, la historia ABAAABA es muy probable que la representaran como 1-0, 1-1, 2-1, 3-1, 4-1, 4-2 y 5-2. Otros acudirían a una doble columna o un diagrama en árbol:







¿Se te ocurren más formas para representar las historias? Si se lo encargas a tus alumnos quizas te den alguna sorpresa.

Recuento

¿Por qué hay 21 historias posibles para el 5 a 2?

Si usamos la primera representación del tipo AAABABA descubriremos que estamos tratando con permutaciones de 7 elementos con repetición, con A tomada 5 veces y B dos.

Según la Combinatoria, su número es 7!/(2!*5!) = 7*6/2 = 21

Si esto se plantea en el aula, el mejor momento sería el inmediato anterior a la explicación teórica. Así se trabaja el problema a base de recuentos y puestas en común sin acudir a fórmulas.

Así que este problema equivale a permutar dos elementos A y B con un número fijado para cada uno.
No es difícil descubrir que también se trata de un caso de combinaciones. En efecto, el equipo B ha de conseguir dos goles, y existen 7 ocasiones para hacerlo. El primer gol tiene 7 posibilidades en su localización y el segundo 6, luego en total son 42 y hay que dividir entre 2 porque los goles son indistingibles.

También se trata de un problema de cajas y bolas. Hay que situar dos bolas indistinguibles en siete cajas distinguibles con un máximo de una bola por caja:





Tal como se indicó antes, llegamos de nuevo a las combinaciones. El número de historias es C7,2.

Si das clases de Matemáticas les puedes plantear esto a tus alumnos: Los goles van cayendo uno a uno formando una lista de siete. ¿En qué número de orden es más probable que caiga el segundo gol del perdedor? Que cuenten, que cuenten…

Simulación

Si se reparten monedas, dados o ruletas por la clase, se podrían intentar algunas simulaciones. Por ejemplo, ¿cómo se organizaría una simulación de las historias posibles del resultado 5-2?

Proponemos una técnica que tiene un peligro oculto: Se van tirando monedas una a una. La cara puede ser un gol de A y la cruz el de B. Como A obtendrá 5 goles, al llegar a ese número rellenamos el resto con B, y si se obtienen 2 goles de B, rellenamos con A.

Puedes reflexionar sobre ello, cómo organizarlo y qué peligro tiene. Nosotros lo dejaremos para la siguiente entrada, en la que incluiremos la simulación con hoja de cálculo.

miércoles, 8 de diciembre de 2010

La suma de sus divisores es cuadrado perfecto

Nota: La simplicidad de esta propuesta me ha hecho sospechar que ya esté publicada en sus líneas generales. Después de una paciente búsqueda no he encontrado nada similar. No obstante, si alguien me avisa de un precedente, lo incluiré como comentario.

Propuesta:

El número 3 tiene una propiedad doble: si sumamos sus divisores con él incluido nos resulta un cuadrado perfecto (1+3=4=22) y si no lo incluimos, también resulta un cuadrado (1=12)

Existen tres números de tres cifras que tienen la misma propiedad. El primero es el 119, porque 1+7+17+119=144=122 y 1+7+17=25=52

¿Cuáles son los otros dos?

viernes, 3 de diciembre de 2010

Parpadeo de un dato elegido


(No sigas leyendo si no te interesa la programación de macros en OpenOffice.org)

En algunas situaciones prácticas podemos tener una gran abundancia de datos que hagan casi imposible su exploración visual. Entre ellos pueden existir algunos cuya ubicación nos interese. Por ejemplo, un lector me indicaba que para él sería útil que se destacaran los pagos que vencieran en la fecha actual. Así, cada vez que abriera la hoja, encontraría parpadeando los que hubieran llegado a su fecha.

No es fácil conseguir que parpadeen las celdas que contengan un dato que nos interese. Por eso nos vamos a tener que basar en unos datos previos que le indiquen a la hoja de cálculo qué tiene que buscar, dónde y cuántos segundos ha de mantener el parpadeo. Con más calma quizás se pudiera prescindir de alguno de ellos, pero el tema no merece más atención.

En la imagen vemos una posible cabecera. En las celdas situadas debajo podemos imaginarnos que existen grandes cantidades de datos, y que entre ellos está el elegido. En este caso hemos usado una fecha 07/11/45 y deberán parpadear todas las celdas inferiores que la contengan.



La macro que construyamos deberá leer las celdas y asignarles una variable. Supongamos que en E6 se lee Valor, en G6 Fila, H6 Columna y J6 Pausa. Esas son las variables que usaremos en el código Basic.

Una vez leídas se inician también t0, que leerá el reloj interno (timer) e indi, que llevará la cuenta de las celdas que contienen el dato elegido. También hay que preparar memorias fil y col que nos indiquen dónde está situado el dato.

Así, la estructura de nuestra macro podría ser:

(A) Se leen las variables 

Leemos Valor, Fila, Columna y Pausa, el reloj en t0 y se pone a cero el contador de veces que aparece el dato (indi) y las memorias fil y col

pausa=StarDesktop.CurrentComponent.sheets(0).GetCellByPosition(9,5).value
valor=StarDesktop.CurrentComponent.sheets(0).GetCellByPosition(4,5).value
fila=StarDesktop.CurrentComponent.sheets(0).GetCellByPosition(6,5).value
columna=StarDesktop.CurrentComponent.sheets(0).GetCellByPosition(7,5).value
t0=timer
t1=t0
indi=0
for i=0 to 50:fil(i)=0:col(i)=0:next i


(B) Se recorren las filas y columnas. 

Cuando se encuentre el dato elegido se incrementa indi y se rellenan fil(indi) y col(indi) con la referencia de la celda.

(C) Se programa una pausa temporal. 

Se puede hacer con esta rutina:

t1=t0
while t1
‘Se realiza el trabajo de recorrer celdas y parpadear
t1=timer
wend


La hora del reloj está almacenada en t0. La otra variable t1 va leyendo el timer y cuando sobrepasa la pausa se detiene. Dentro del bucle se realiza el parpadeo.

(D) Parpadeo de las celdas elegidas

Consistirá simplemente en asignar dos colores distintos a las celdas y separarlos mediante un pequeño intervalo de tiempo:

if indi>0 then
for i=1 to indi
StarDesktop.CurrentComponent.sheets(0).GetCellByPosition(col(i),fil(i)).cellbackcolor=rgb(255,100,200)
next i
end if

‘colorea de rojo apagado

for i=1 to 1e4:next i

‘mantiene ocupado el ordenador por un tiempo

if indi>0 then
for i=1 to indi
StarDesktop.CurrentComponent.sheets(0).GetCellByPosition(col(i),fil(i)).cellbackcolor=rgb(255,255,255)
next i


‘Vuelve a colorear de blanco

Como ejercicio de programación es divertido. Seguro que alguien lo puede mejorar. 

Copiamos a continuación todo el código en Basic de OpenOffice.org

Sub parpadeo
dim pausa,valor,fila,columna,celda
dim t0,t1,i,j,k,indi
dim fil(50),col(50)

pausa=StarDesktop.CurrentComponent.sheets(0).GetCellByPosition(9,5).value
valor=StarDesktop.CurrentComponent.sheets(0).GetCellByPosition(4,5).value
fila=StarDesktop.CurrentComponent.sheets(0).GetCellByPosition(6,5).value
columna=StarDesktop.CurrentComponent.sheets(0).GetCellByPosition(7,5).value

t0=timer
t1=t0
indi=0
for i=0 to 50:fil(i)=0:col(i)=0:next i
for i=8 to fila
for j=1 to columna
celda=StarDesktop.CurrentComponent.sheets(0).GetCellByPosition(j,i).value
if celda=valor then

indi=indi+1
fil(indi)=i:col(indi)=j
end if
next j
next i
while t1

if indi>0 then
for i=1 to indi
StarDesktop.CurrentComponent.sheets(0).GetCellByPosition(col(i),fil(i)).cellbackcolor=rgb(255,100,200)
next i
end if
for i=1 to 1e4:next i
if indi>0 then
for i=1 to indi
StarDesktop.CurrentComponent.sheets(0).GetCellByPosition(col(i),fil(i)).cellbackcolor=rgb(255,255,255)
next i
end if
t1=timer
wend

End Sub