### 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?

• +14

 » 5 weeks ago, # |   0 Auto comment: topic has been updated by hoainiem (previous revision, new revision, compare).
 » 5 weeks ago, # |   -17
•  » » 5 weeks ago, # ^ | ← Rev. 3 →   0 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
•  » » » 5 weeks ago, # ^ |   0 sorry, my bad I misread the problem I thought you are asking for f[n] % M.
 » 5 weeks ago, # |   +4 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)
•  » » 5 weeks ago, # ^ |   0 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 →   +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
•  » » » » 5 weeks ago, # ^ |   0 i finally get accepted this problem and it's all due to your help. Thanks you.
•  » » » » » 5 weeks ago, # ^ |   0 Glad to hear it :)
 » 5 weeks ago, # |   -37 Here is the solution https://www.youtube.com/watch?v=dQw4w9WgXcQ
•  » » 5 weeks ago, # ^ |   0 :))
•  » » 5 weeks ago, # ^ |   0 That's a bad way to rickroll people, this tutorial teaches how to do it better.
•  » » 5 weeks ago, # ^ |   0 That's the solution for every problem i.g.