Grafik operasi modulo ( ) terlihat seperti ini:
Ini adalah fungsi yang sangat berguna, karena memungkinkan kita untuk membuat perilaku "membungkus". Namun, itu sangat rumit ketika saya ingin menggunakannya untuk membuat tampilan "memantul" di antara dua dinding. Grafik fungsi "bouncing" ( ) terlihat seperti ini:
The periode dari grafik yaitu . Periode grafik adalah , karena bergerak ke atas untuk unit , dan kemudian bergerak ke bawah untuk unit lain , sebelum kembali ke tempat dimulainya. Untuk kedua fungsi, nilai minimum untuk adalah 0, dan maksimum adalah (Sebenarnya, untuk fungsi modulus dengan input integral, ). Selain itu, untuk kedua fungsi, nilai adalah 0.k y = bouncing ( x , k ) 2 k ky k k - 1 x = 0
Tantangan
Dengan bilangan bulat dan bilangan bulat positif , kembalikan pendekatan bilangan bulat atau titik mengambang dari .k y = bouncing ( x , k )
Ini adalah kode-golf , sehingga pengiriman terpendek yang valid (dihitung dalam byte) menang.
Uji Kasus
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
.