### hoainiem's blog

By hoainiem, history, 5 weeks ago, I have a problem about fibonacci numbers: ==================

## f[i] = f[i-1] + f[i-2] (i > 2)

how can i calculate f[f[n]] mod M (n, M <= 10^9). anyone can help me? Comments (13)
 » Auto comment: topic has been updated by hoainiem (previous revision, new revision, compare).
 »
•  » » 5 weeks ago, # ^ | ← Rev. 3 →   i don't think these 2 problems are similar. your problem is calculate the nth fibonacci number , which can be solved by matrix multiplication. but we can't use it to solve my problem because f[n] can be very large, and we can't use modules because (f[f[n]]) mod m is not equal to (f[f[n]mod m] ) mod m
•  » » » sorry, my bad I misread the problem I thought you are asking for f[n] % M.
 » I guess you can try to find pisano period of M, then calculate f[n] mod P(m), where P(i) — pisano period of modulo i, and then calculate the final answer mod M.Though I'm not sure how to calculate pisano period for such big M, you can try to look for some optimizations here.(also google is your big friend here)
•  » » thank you very much. i've tried to google it but i can't find any way to calculate pisano period for m <= 1^9
•  » » » 5 weeks ago, # ^ | ← Rev. 3 →   I (definitely didn't find it in The Ultimate Topic List) found implementation that calculates Pisano period, not sure it'll work with big M, but it might be a good try
•  » » » » i finally get accepted this problem and it's all due to your help. Thanks you.
•  » » » » » Glad to hear it :)
 » Here is the solution https://www.youtube.com/watch?v=dQw4w9WgXcQ
•  » » :))
•  » » That's a bad way to rickroll people, this tutorial teaches how to do it better.
•  » » That's the solution for every problem i.g.