[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[obm-l] Re: [obm-l] Re: [obm-l] Combinatória



On Mon, Jun 09, 2003 at 09:48:20AM -0300, Nicolau C. Saldanha wrote:
> Assim, o número de caminhos de tamanho 23 de 1 a 2 é a entrada (1,2)
> de A^23 onde A é a matriz abaixo:
> 
>  (1 1 0 0)
>  (1 1 1 0)
>  (0 1 1 1)
>  (0 0 1 1)

Não sei se vocês gostaram do final da solução mas eu não gostei.
Seja X a matriz abaixo:

 (1  0  0  1)
 (0  1  1  0)
 (0  1 -1  0)
 (1  0  0 -1)

A idéia de considerar X vem da simetria do problema:
vetores pares (a,b,b,a) e ímpares (a,b,-b,-a) são levados
em vetores pares e ímpares, respectivamente.
Temos X^(-1) = 1/2 X e a conjugada B = X^(-1)AX é igual a

 (1 1 0 0)
 (1 2 0 0)
 (0 0 0 1)
 (0 0 1 1)

que tem na diagonal dois blocos B1 e B2.
Para calcular B^23 basta portanto calcular B1^23 e B2^23
e depois é fácil recuperar A^23.

Mas B1 e B2 são velhas conhecidas nossas:
B2 é a matriz que calcula a seq de Fibonacci (rodada)
e B1 é o quadrado dela. Assim, B1^n e B2^n são respectivamente

 ( f(2n-1)   f(2n)  )
 (  f(2n)   f(2n+1) )

 ( f(n-1)  f(n)  )
 (  f(n)  f(n+1) )

onde f(0) = 0, f(1) = f(2) = 1, f(n+1) = f(n) + f(n-1). Assim A^n é
X B^n X^(-1), ou seja, 2 A^n é a matriz abaixo:

 (  f(2n-1) + f(n+1)   f(2n) + f(n)        f(2n) - f(n)    f(2n-1) - f(n+1) )
 (   f(2n) + f(n)     f(2n+1) + f(n-1)   f(2n+1) - f(n-1)    f(2n) - f(n)   )
 (   f(2n) - f(n)     f(2n+1) - f(n-1)   f(2n+1) + f(n-1)    f(2n) + f(n)   )
 (  f(2n-1) - f(n+1)   f(2n) - f(n)        f(2n) + f(n)    f(2n-1) + f(n+1) )

e o número que você quer é (f(46) + f(23))/2 = 918170280.

[]s, N.


=========================================================================
Instruções para entrar na lista, sair da lista e usar a lista em
http://www.mat.puc-rio.br/~nicolau/olimp/obm-l.html
=========================================================================