Interviewstreet tuvo su segundo CodeSprint en enero, que incluyó la siguiente pregunta. La programación respuesta es publicado, pero no incluye una explicación estadística.
(Usted puede ver el problema original y publicado solución al iniciar sesión en la Interviewstreet sitio web con Google creds y, a continuación, ir al lanzar una Moneda problema de esta página.)
Lanzar Una Moneda
Usted tiene un imparcial de la moneda que desea mantener tirar hasta obtener N consecutivos cabezas. Has lanzado la moneda M veces y, sorprendentemente, todos los lanzamientos resultó en la cabeza.
¿Cuál es el número esperado de lanzamientos adicionales necesarios hasta obtener N consecutivas de los jefes?
Entrada:
La primera línea contiene el número de casos de T. Cada una de las siguiente líneas T contiene dos números de N y M.
Salida:
La salida de las líneas T que contiene la respuesta para el correspondiente caso de prueba. Impresión de la respuesta redondeado a exactamente 2 decimales.
Entrada De Ejemplo:
4
2 0
2 1
3 3
3 2
Ejemplo De Salida:
6.00
4.00
0.00
8.00
Ejemplo De Explicaciones:
Si N = 2 y M = 0, usted necesita para mantener a tirar la moneda hasta obtener 2 consecutivos cabezas. No es difícil mostrar que, en promedio, 6 de lanzar una moneda son necesarios.
Si N = 2 y M = 1, se necesitan de 2 consecutivos cabezas y ya tiene 1. Usted necesita para lanzar una vez más, no importa qué. En el primer sorteo, si te cabezas, está hecho. De lo contrario, usted necesita para volver a empezar, como el consecutivo contador se restablece, y que necesita para mantener tirar la moneda hasta obtener N=2 consecutivos cabezas. El número esperado de lanzar una moneda es así 1 + (0.5 * 0 + 0.5 * 6) = 4.0
Si N = 3 y M = 3, ya tiene 3 cabezas, por lo que no necesita de más lanzamientos.
Todas las ecuaciones matemáticas que se me ocurrió con las respuestas correctas para la muestra de entrada de datos mencionadas anteriormente, pero estaba equivocado para todos los otros conjuntos de entrada (que no conoce). Su solución programática parece resolver el problema muy diferentes de mi try-para-llegar-con-un-ecuación de método. Por favor alguien puede explicar cómo llegar a una ecuación que podría resolver esto?