El gráfico de la operación de módulo ( ) se ve así:
Esta es una función muy útil, ya que nos permite crear un comportamiento de "ajuste". Sin embargo, es muy engorroso cuando quiero usarlo para crear una apariencia de "rebote" entre dos paredes. El gráfico de la función "rebote" ( ) se ve así:
El período de la gráfica de es . El período de la gráfica de es , porque se mueve hacia arriba para unidades, y luego se mueve hacia abajo para otras unidades, antes de regresar a donde comenzó. Para ambas funciones, el valor mínimo para es 0, y el máximo es (en realidad, para la función de módulo con entradas integrales, es ). Además, para ambas funciones, el valor donde es 0.k y = rebote ( x , k ) 2 k k k y k k - 1 x = 0
El reto
Dado un entero un entero positivo , devuelve una aproximación entera o de coma flotante de .k y = rebote ( x , k )
Este es el código de golf , por lo que gana el envío válido más corto (contado en bytes).
Casos de prueba
x, k -> bounce(x, k)
0, 14 -> 0
3, 7 -> 3
14, 14 -> 14
15, 14 -> 13
-13, 14 -> 13 (12.999997 etc would be an acceptable answer)
-14, 14 -> 14
191, 8 -> 1
192, 8 -> 0
Los puntos de bonificación para un Fourier basados en el enfoque de Fourier .
k % k = 0
k
.