En todos los libros de texto que hablan de probabilidad se utilizan siempre dados, monedas y urnas con bolas para poner ejemplos de objetos que proporcionan una forma teórica de ver el azar y las probabilidades de los sucesos.
En estos ejercicios las monedas siempre tienen un 50 por ciento de probabilidades de caer de cara o cruz. Sin embargo, en nuestro imperfecto MundoReal™ las cosas no son tan sencillas como en la teoría: una moneda puede estar ligeramente sesgada y producir resultados del estilo 49% caras 51% cruces o incluso haber sido «cargada» por un tramposo y tener una distribución diferente (75% caras y 25% cruces, por ejemplo).
Un interesante problema teórico es como anular esos sesgos, sean intencionados o initencionados cuando se necesitan bits «realmente aleatorios». En How to extract bits from coin flips han recordado uno de los métodos clásicos, atribuido a John Von Neumann, para lograr precisamente eso. Un poco más abajo está la solución.
.
.
.
- Llamemos C a «cara» y Z a «cruz»
- Se lanza la moneda dos veces seguidas
- Si el resultado es CZ lo llamamos 0
- Si el resultado es ZC lo llamamos 1
- Si salen CC o ZZ ignoramos el resultado y repetimos
- (… Repetir tantas veces como sea necesario…)
- La secuencia obtenida tiene ceros y unos al 50%
Este sistema puede extenderse todo lo que sea necesario y admite variantes con otro tipo de objetos o fuentes de datos diferentes a las monedas, tales como dados, siempre que el sesgo se mantenga a lo largo del tiempo.