Hice una simulación de Python y la respuesta es 4.40. Pero creo que debería haber un enfoque teórico para este problema. Recuerdo haber visto variaciones varias veces, pero no conozco los términos técnicos.
Si alguien está interesado, aquí está mi simulación:
def reset_to_original(starting_number, reset_probability):
'''
Given <starting_number>, countdown to zero. At each turn, there's a <reset_probability>
that the number of remaining turns will be reset to <starting_number>.
Return the total number of turns.
'''
import random
remaining = starting_number
total_count = 0
while remaining:
remaining -= 1
total_count += 1
is_reset = random.random() < reset_probability
if is_reset: remaining = starting_number
return total_count
def main(num, starting_number, reset_probability):
total = 0.0
for i in range(num):
total += reset_to_original(starting_number, reset_probability)
print('Average: {}'.format(total / num))
main(pow(10, 6), 3, 0.17)
¿Alguien puede guiarme a través de su cálculo teórico?