








Polya
Integrantes del proyecto:
Rafael Mac Donough y Juan Carlos Aquerreta.
De qué se trata?
George Pólya es un matemático húngaro que se dedicó al estudio de la teoría de probabilidades entre otras cosas. En este proyecto proponemos recrear con objetos un ejercicio sencillo propuesto por Él.
El ejeccicio consiste en una caja con bolitas de varios colores. Lo que se hace es sacar una bolita al azar de la caja y devolverla junto a una nueva bolita del mismo color. De este modo la cantidad de bolitas aumenta en cada intento (try) y cambian también las proporciones de las bolitas de cada color. Si hacemos esto repetidamente quizás nos sorprendamos con el resultdo. Es bueno preguntarse a priori qué pasará con la proporción de bolitas de cada color y luego observar los resutados. Además supusimos que hay bolitas menos "pegajosas" que otras, es decir que las menos pegajosas tienen menor probabilidad de ser extraidas de la caja en cada intento.
Si desea observar simulaciones realizadas de este ejercicio haga click aquí
Veremos qué otra cosa original se nos ocurre y los mantendremos al tanto.
suerte
En el archivo Polya.st puede encontrar lo necesario para jugar con Polya. Para jugar con la versión visual deberá tener también el PlotMoph de Diego Gomez Deck en http://minnow.cc.gatech.edu/squeak/2626.
Si quiere agregar comentarios hágalo aquí abajo.
AYUDA
El modelo es PolyaCage, pero tiene una sub clase PolyaCageVisual que hace que se muestre. Con los siguientes ejemplos podes empezar a jugar.
| cajaConDosBolas |
cajaConDosBolas := PolyaCageVisual new.
cajaConDosBolas tryTimes: 100.
cajaConDosBolas inspect
Si querés ponerle las condiciones de inicio del juego podés hacerlo diciendole:
a) qué colores querés usar.
b) qué tan pegajosas son las bolitas de cada color.
b) cuantas bolitas de cada color poner en la caja para empezar.
| cajaConDosBolas dic red black |
red := Color red.
black := Color black.
dic := Dictionary new.
dic at: red put: 2 @ 0.5 ;
at: black put: 1 @ 1.
"Las claves (keys) del diccionario son cada color y los valores (values) son puntos donde x representa la cantidad de bolitas del ese color al inicio del juego e y representa la pegajosidad (stickyness) representada por un aFloat entre 0 y 1"
cajaConDosBolas := PolyaCageVisual newWith: dic.
cajaConDosBolas tryTimes: 100 .
cajaConDosBolas inspect
Probá también con:
| cajaConTresBolas dic red black green |
red := Color red.
black := Color black.
green := Color green.
dic := Dictionary new.
dic at: red put: 1@1;
at: black put: 1@1;
at: green put: 1@1.
cajaConTresBolas := PolyaCageVisual newWith: dic.
cajaConTresBolas tryStability.
cajaConTresBolas inspect
Además aquí hay una versión que se puede usar con VisualSmalltalk 3.1. En el archivo comprimido encontrará todo lo necesario para correr el modelo.
PolyaCage.zip
Otra versión está en el archivo siguiente. Esta versión puede ser usada por personas sin conocimiento alguno de programación. Entre los archivos comprimidos encontrará uno (readme.txt) donde se explica cómo instalarlo y usarlo.
Para los smalltalkeros no tiene nada de atrativo porque se trata de una imágen muerta, con muy poca versatilidad.
Polya-2.zip