Ex. fnickel[-1] = 0, fnickel[1] = 0, fnickel[5] = 1, fnickel[6] = 0, ...
This is just like a forward echo, except the "future" filter taps are not attenuated
(fcent*fnickel*fdime*fquarter*fhalf-dollar)[n] = An, where * is the convolution operator. This can be computed via dynamic programming. Start with fcent[n] by setting dp[n] = 1 for all 0 ≤ n ≤ 100, then convolve with the next coin signal. This amounts to applying this update rule from n=1 to n=100: dp[n] ← dp[n] + dp[n - coin_value].
If order of payment matters, then the solution is a simple linear recurrence. An = An - 1 + An - 5 + ... + An - 50.
Dynamic programming solutions to equivalent cses problems: