Vamos a configurar esto en un plano de coordenadas. Sólo por motivos de conveniencia, voy a tener la pelota se lanza desde la esquina inferior izquierda en su lugar para que yo pueda dejar que el origen sea el punto de lanzamiento. A continuación, vamos a la esquina superior izquierda se (0,y), la esquina inferior derecha se (x,0), y en la esquina superior derecha se (x,y). Hagamos x\gt y (estamos evitando el caso trivial x=y cuando se trata de un cuadrado, ya que se pasará directamente a la esquina opuesta). A continuación, el primer salto se producirá en el punto de (x,x).
Aquí es lo que debemos hacer para que este problema manejable. En lugar de tener la pelota rebote en los lados izquierdo y derecho, vamos a tener que pasar a través de ellos como los portales y sale por el lado opuesto. Esto no va a afectar si el balón llega a una esquina.
A continuación, sólo queremos contar los rebotes en la parte superior y la parte inferior de la tabla, desde la izquierda y la derecha son ahora "los portales". En este caso, cada rebote se produce a un múltiplo de y. El eje de abscisas de la nº rebote será
yn \mod x
y el final de rebote en el agujero será cuando
yn \mod x=0
y el más pequeño de n por que es cierto es
n_h=\frac{x}{GCD(x,y)}
A continuación, el número de rebotes en la parte superior y la parte inferior es n_h. Luego el número de secundarios de mensajes es el número de veces que la pelota pase a través del "portal", que es
\frac{yn_h}{x}-1
excluyendo la final de rebote en el agujero, ya que el número de verticales rebotes cuenta. A continuación, el número total de mensajes es
n_h+\frac{yn_h}{x}-1
dondex \gt yn_h=\frac{x}{GCD(x,y)}.
Esto es un poco apresurado... si tengo que explicar más, por favor dígame.