### hoainiem's blog

By hoainiem, history, 17 months 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

| Write comment?
 » 17 months ago, # |   0 Auto comment: topic has been updated by hoainiem (previous revision, new revision, compare).
 » 17 months ago, # |   -17
•  » » 17 months 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
 » 17 months 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)
•  » » 17 months 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
•  » » » 17 months 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
•  » » » » 17 months ago, # ^ |   0 i finally get accepted this problem and it's all due to your help. Thanks you.
•  » » » » » 17 months ago, # ^ |   0 Glad to hear it :)
 » 17 months ago, # |   -37 Here is the solution https://www.youtube.com/watch?v=dQw4w9WgXcQ
•  » » 17 months ago, # ^ |   0 :))
•  » » 17 months ago, # ^ |   0 That's a bad way to rickroll people, this tutorial teaches how to do it better.