You are on page 1of 3

How Q-M at rix M et hod W orks?

For many pr obl ems i n t opcoder or ot her pr ogr ammi ng cont est s coder s have t o deal w i t h Fi bonacci
number s or r ecur r ence r el at i on l i ke t hi s,
( n) = o
1
( n 1) + o
2
( n 2) + o
3
( n 3) + . . . + o
d
( n J)
M any pr ogr ammer s know how t o gener at e Fi bonacci number s i n l ogari t hmi c t i me but t hey don t know
how i t act ual l y w or ks. Her e w e w il l di scuss how Q-M at r i x met hod w or ks.
Fibonacci number:
Suppose w e have a f unct i on
( n) = ( n 1) + ( n 2) [ ibonocci unction]
onJ
:cctor, : = [ ( n) , ( n + 1) ]

Suppose w e have a mat r i x A. If w e mul t i pl y vect or : w i t h A t hen w e w i l l get
:. A = [ ( n + 1) , ( n + 2) ]
If w e mul t i pl y : = [ ( 1) , ( 2) ] and A
n
t hen w e w i l l get
:. A
n
= [ ( n + 1) , ( n + 2) ] .
Now w e have t o f i nd mat r i x A. Then w e can comput e A
n
i n l ogar i t hmi c t i me. We can di vi de mat r i x A
i nt o t w o col umn mat r i xes( A
1
onJ A
2
) . For : = [ ( n) , ( n + 1) ] w e w ant t o get :. A
1
= [ ( n + 1) ]
:. A
2
= [ ( n + 2) ] . So obvi ousl y A
1
= [ 0,1] onJ A
2
= [ 1,1] .
So A = j
0 1
1 1
[
Now i f w e w ant t o cal cul at e nTh Fi bonacci number and : = [ ( 1) , ( 2) ] . We can use mat r i x A t o
cal cul at e nTh Fi bonacci number .
Ini t i al l y A = j
0 1
1 1
[ and : = _
( 1) 0
0 ( 2)
_
Then :. A
n-1
= j
o
1,1
o
1,2
o
2,1
o
2,2
[
So t he nt h Fi bonacci number i s ( n) = o
1,1
+ o
2,1
onJ ( n + 1) = o
1,2
+ o
2,2



Generalizat ion of Q-M at rix met hod:
Suppose w e have a r ecur r ence r el at i on ( n) = o
1
( n 1) + o
2
( n 2) + o
3
( n 3)
We w ant t o cal cul at e nI t er m of t he sequence i n Q-M at r i x met hod.
Let , w e have a vect or : = [ ( n) , ( n + 1) , ( n + 2) ] and a mat r i x A
And :. A = [ ( n + 1) , ( n + 2) , ( n + 3) ]
We can di vi de mat r i x A i nt o t hr ee col umn mat r i xes( A
1
, A
2
, A
3
) . Now w e have t o f i ne A
1
, A
2
, A
3
such
t hat :. A
1
= [ ( n + 1) ] :. A
2
= [ ( n + 2) ] onJ :. A
3
= [ ( n + 3) ]
So A
1
= _
0
1
0
_
A
2
= _
0
0
1
_
A
3
= _
o
3
o
2
o
1
_

And A = _
0 0 o
3
1 0 o
2
0 1 o
1
_

Let , : = [ ( 1) , ( 2) , ( 3) ] and w e w ant t o f i nd t he nI t er m of t he sequence.
We can w r i t e :. A
n-1
= [ ( n) , ( n + 1) , ( n + 2) ]
Now , : = _
( 1) 0 0
0 ( 2) 0
0 0 ( 3)
_ and A = _
0 0 o
3
1 0 o
2
0 1 o
1
_
If :. A
n-1
= _
o
1,1
o
1,2
o
1,3
o
2,1
o
2,2
o
2,3
o
3,1
o
3,2
o
3,3
_
So w e can w r i t e ( n) = o
1,1
+ o
2,1
+ o
3,1

( n + 1) = o
1,2
+ o
2,2
+ o
3,2

( n + 2) = o
1,3
+ o
2,3
+ o
3,3


Si mil ar ly w e can easi l y f i nd nI t er m of t he r ecur r ence r el at i on l i ke t hi s,
( n) = o
1
( n 1) + o
2
( n 2) + o
3
( n 3) + . . . + o
d
( n J)

You might also like