Графік операції по модулю ( ) виглядає так:
Це дуже корисна функція, оскільки вона дозволяє нам створити "обгорткове" поведінку. Однак це дуже громіздко, коли я хочу використовувати його, щоб створити вигляд "підстрибування" між двома стінами. Графік функції "відмов" ( ) виглядає так:
Період графіка є . Період графіка становить , оскільки він рухається вгору для одиниць, а потім рухається вниз для інших одиниць, перш ніж повернутися туди, де він почався. Для обох функцій мінімальне значення дорівнює 0, а максимальне - (Власне, для функції модуля з інтегральними входами це ). Крім того, для обох функцій значення, де дорівнює 0.k y = відскок ( x , k ) 2 k k k yk - 1 x = 0
Змагання
Давши ціле число і додатне ціле число , поверніть ціле число або наближення з плаваючою комою .k y = відмов ( x , k )
Це код-гольф , тому виграє найкоротше дійсне подання (рахується в байтах).
Випробування
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
k % k = 0
k
.