domingo, agosto 12, 2007

La banca siempre gana

Anoche estuve en el Casino, cenando y jugando un poco. La verdad es que es un sitio fascinante, además de por las tonterías del glamour, James Bond y demás polladas, por su forma de funcionar.

Mucha gente piensa que los juegos de casino son un timo, lo cuál no es cierto. Son juegos mucho más justos (en el sentido estadístico) que, por ejemplo, la Lotería Nacional, a la que todos jugamos en navidad. Sin embargo, a pesar de que las probabilidades de ganar favorecen muy ligeramente a la banca, un casino es muy rentable... y lo seguiría siendo aunque el juego fuese totalmente justo.

El secreto está, mira tú por dónde, estrechamente relacionado con el paseo del borracho (ya hice una tira cómica al respecto). En un proceso de este tipo, a cada paso la media está en la posición inicial, pero a cada paso la varianza va aumentando. En concreto, se trata más o menos de una distribución binomial, con unos pequeños ajustes.

Suponiendo que la cantidad inicial con la que llegas al casino es c, que las apuestas son unitarias y te pagan el inverso del riesgo, con una probabilidad p de ganar, tras n apuestas tu dinero sigue una distribución Binomial(n,p)/p-n+c. Efectivamente, la media es c. Pero hay un factor a tener en cuenta: en cuanto te quedas sin pasta, no puedes seguir jugando.

Con esta consideración, la cosa se complica bastante en términos matemáticos, de hecho me estaba pegando un poco con ello hasta que he visto entrar en el semmenger a un colega estadístico y le he preguntado que cómo lo veía... me ha dicho que lo había resuelto en la carrera, como problema de los jodidos, así que lo voy a dejar pasar.

El problema se puede abordar de la siguiente forma: hay que calcular el número de jugadas en promedio en el que un tío llega a la bancarrota. Para ello, hay que ir acumulando en cada apuesta la probabilidad de llegar a 0, lo cuál se puede hacer con la función distribución de la binomial, que ya de por sí es una formula complicadilla.

Así que si a alguien le apetece sacar la fórmula analítica, o simularlo, que se tire el rollo y lo cuente en los comentarios.

viernes, agosto 03, 2007

Cosas que molan de Linux (I)

Esto que voy a contar aquí no es nada complicado y seguramente cualquier usuario medio de Linux sepa hacerlo, aunque es posible que no se le haya ocurrido...

¿Cuántas veces te has tenido que largar de casa corriendo y has dejado el ordenador encendido porque estaba haciendo algo que no podías dejar a medias? Si la respuesta es más de cero, a lo mejor encuentras de utilidad lo siguiente, si no, te jodes y sigues leyendo, que para eso eres mi putita y estás aquí para tragarte mis bodrios.

Vamos allá, supongamos que tenemos el comando en cuestión (un apt-get update, un wget, o cualquier cosa por el estilo) ejecutando en primer plano, lo que tenemos que hacer es suspenderlo momentáneamente (ctrl+z) y después ejecutar la siguiente línea:
fg; poweroff
Con eso continuaremos la ejecución y en cuanto termine "fg" (foreground) ejecutará "poweroff" y apagará el cacharro. Menuda chorrada ¿eh? pues espera a ver lo siguiente.


La otra situación posible es cuando tenemos algún programilla con interfaz gráfica descargando porno como un poseso y el programa no terminará su ejecución cuando termine la descarga, por lo que no nos sirve la triquiñuela de encolar un comando tras su finalización... entonces tendremos que mirar el tiempo estimado para que finalice, cruzar los dedos para que la estimación sea buena y hacer lo siguiente:
  • Programar la tarea de apagado con el comando "at" a la hora estimada de finalización (sugiero darle unos cuantos minutos más de margen):
    echo poweroff | at 21:30
    Tiene el inconveniente de que si apagas el ordenador antes manualmente, en cuanto lo vuelvas a encender después de la hora programada, se apagará automáticamente otra vez...
  • Hacer lo mismo que en el primer caso, pero simulando el tiempo de duración de la descarga con un sleep:
    sleep 1h 30m && poweroff
    Como podéis ver, aquí los comandos "sleep" y "poweroff" están concatenados con "&&" en lugar de ";" lo cuál sirve para que el segundo comando no se ejecute si el primero devolvió un código de error distinto de cero, como es el caso cuando se termina la ejecución abruptamente con ctrl+c; lo cuál nos sirve para abortar la orden de apagado en el caso de que nos arrepintamos y queramos seguir trabajando o tengamos una nueva estimación de la duración de la tarea.

La última opción es conectaros por ssh a vuestra máquina con vuestra PDA desde cualquiera que sea el puticlub con wifi en el que estéis y apagarlo a mano.

Pues eso, que como estoy seguro de que ninguno de mis sufridos lectores ha llegado hasta aquí porque la mitad ya lo sabía y a la otra mitad no le interesaba, yo aprovecho y me voy a cagar.