Puedes definirF( norte , un , segundo , c )
ser el número de longitudnorte
cadenas que contienena
PD,b
e's yC
r's (es fácil generalizar para más caracteres). Lo que estás tratando de encontrar es entoncesF( norte , 2 , 1 , 1 )
. Ahora imagina que tienesnorte
ranuras _ _ ... _
y considere la primera ranura. Si contiene unpag
, el resto solo requerirá( 1 , 1 , 1 )
p, e, r respectivamente, por lo que este caso corresponde aF( norte - 1 , 1 , 1 , 1 )
. Trabajando para los otros casos donde la primera letra es e, r u otros caracteres, obtenemos
F( norte , 2 , 1 , 1 ) = f( norte - 1 , 1 , 1 , 1 ) + F( norte - 1 , 2 , 0 , 1 ) + F( norte - 1 , 2 , 1 , 0 ) + 23 f( norte - 1 , 2 , 1 , 1 )
En general, tenemosF( norte , un , segundo , c ) = F( norte - 1 , un - 1 , segundo , do ) + F( norte - 1 , un , segundo - 1 , do ) + F( norte - 1 , un , segundo , do - 1 )+ 23 f( norte - 1 , un , segundo , do )
, dóndeun - 1
es reemplazado por0
siun = 0
, etc.
Ahora, para ampliar las recurrencias anteriores, permítanme escribir la abreviaturaFa b c
representarF( norte , un , segundo , c )
a la izquierda, yF( norte - 1 , un , segundo , do )
A la derecha. Entonces,
F211=F111+ 2F210+ 23F211
,F111= 3F110+ 23F111
,F110= 2F100+ 24F110
,F100=F000+ 25F100
,F210=F110+F200+ 24F210
,F200=F100+ 25F200
.
Esto significa que podemos escribir las recurrencias lineales como una gran matriz
⎛⎝⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜23000000123000002024000000125000031024000001225000000126⎞⎠⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎛⎝⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜F( norte - 1 , 2 , 1 , 1 )F( norte - 1 , 1 , 1 , 1 )F( norte - 1 , 2 , 1 , 0 )F( norte - 1 , 2 , 0 , 0 )F( norte - 1 , 1 , 1 , 0 )F( norte - 1 , 1 , 0 , 0 )F( norte - 1 , 0 , 0 , 0 )⎞⎠⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟=⎛⎝⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜F( norte , 2 , 1 , 1 )F( norte , 1 , 1 , 1 )F( norte , 2 , 1 , 0 )F( norte , 2 , 0 , 0 )F( norte , 1 , 1 , 0 )F( norte , 1 , 0 , 0 )F( norte , 0 , 0 , 0 )⎞⎠⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟
Donde las condiciones iniciales sonF⃗ ( 0 , un , segundo , c ) = ( 0 , 0 , 0 , 0 , 0 , 0 , 1 )
.
Por ejemplo, tenemos
⎛⎝⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜23000000123000002024000000125000031024000001225000000126⎞⎠⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟30⎛⎝⎜⎜⎜⎜⎜⎜⎜⎜000000⎞⎠⎟⎟⎟⎟⎟⎟⎟⎟=⎛⎝⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜408298312495180146737959753848343345105980904661966989667522499666243022416746553180611123311067817274112032976724465487015472905003077710258115405504100084874108632001133335630146170002747447037815097355913750219458371632963423720526587889200181516007512813198901284745919258621029615971520741376⎞⎠⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟
Así que la primera fila da la respuesta.408298312495180146737959753848343345105980
paranorte = 30
(recuerda que tratamos de encontrarF( norte , 2 , 1 , 1 )
).
Si de alguna manera todavía no está satisfecho, puede encontrar el polinomio de características de la matriz y hacer algunas locuras con él. Omitiré el cálculo y daré el resultado:
F( norte ) =26norte− 3 ⋅25norte+ 3 ⋅24norte−23norte− norte ⋅23norte - 1+ 2 norte ⋅24norte - 1− norte ⋅25norte - 1
¡Espero que esto ayude!
Yamini Kashyap