miércoles, mayo 10, 2006

El problema del jugador falsificador


Cierto falsificador, con un gusto desmedido por el juego, se dirige a un casino en el que encuentra infinita su capacidad para obtener crédito por medios un tanto reprochables pero eficaces. Hecho esto, se acerca a una mesa de ruleta y se instala comodamente frente al croupier y apuesta al negro con la determinación de quedarse apostando hasta ganar.

-- indica si el color c sale o no en la ruleta

saleEnRuleta: Color -> Boolean
saleEnRuleta = c == dameUno ( {Rojo} U {Negro} )

-- retorna cuando la apuesta a negro resulta ganadora

apostarHastaGanar : Color -> Boolean
apostarHastaGanar (c) =
if (not sale(c)) then
apostarHastaGanar(c)
else
True
fi

La pregunta que surge de este modesto fuego de artificio que requiere de un croupier y un jugador de vida eterna es la siguiente:

¿Existe la garantía de que el jugador se retire de la mesa de juego una vez comenzada su apuesta?

La sospechosa respuesta a este interrogante estará por aquí en unos cuantos días, apenas encuentre una manera de disimular su imprecisión.