Así que el problema, como yo lo veo, se inicia poco después de punto (iii) anterior: ¿qué acerca de las cadenas que comienzan con 002? Para encontrar esos casos, usted debe encontrar cadenas de longitud n−3 que no tiene 11 en ellos. Esta es una cantidad menor que an−3/2, pero, ¿cuánto no sé. (el 112 caso es similar)
Así, para resolver esto, me gustaría dividir el problema en varias clases, encontrar una relación de recurrencia para cada clase, y luego se combinan para obtener una recurrencia de la suma.
Entonces, vamos a definir un par de casos:
an será la secuencia original, el número de trinarias cadenas de longitud n que no contienen dos días consecutivos de 0s y dos consecutivos 1s
bn será el número de trinarias cadenas de longitud n que hacer contienen dos 0s consecutivos, pero no contienen dos consecutivos 1s
cn será el número de trinarias cadenas de longitud n que hacer contienen dos consecutivos 1s, pero no contienen dos consecutivos 0s
dn será el número de trinarias cadenas de longitud n que no contengan cualquiera de los dos 0s consecutivos o dos días consecutivos de 1s
Tenga en cuenta que an=bn+cn+dn.
Ahora, para i=0,1,2, vamos a ain ser las cadenas de ser las cadenas de la clase que estamos buscando para contar a hacer an que comienzan con un dígito i. Así, por ejemplo, tenemos:
an=a0n+a1n+a2n
Del mismo modo, definir bin, cin, y din.
Ahora, considere la posibilidad de encontrar una relación de recurrencia para bn; es más fácil de romper que en relaciones de recurrencia para b0n, b1n, y b2n.
Recta de las definiciones, se obtiene:
b0n=bn−1+d0n−1b1n=b0n−1+b2n−1b2n=bn−1
Recuerde, estamos buscando cadenas que hacer contengan 00
pero no contienen 11
. Para dicha cadena para comenzar con 0
, lo que significa que el resto de la cadena ya ha cumplido con nuestra condición de (bn−1 de los casos) o una cadena de caracteres sin consecutivos 0s o 1s consecutivos que se inició con 0
(d0n−1 de los casos). Para dicha cadena para comenzar con 1
, lo que significa que el resto de la cadena ya ha cumplido con nuestra condición y comenzó con un 0
o 2
(b0n−1+b2n−1 de los casos). Para dicha cadena para comenzar con 2
, sólo significa que el resto de la cadena coincidente nuestra condición. (bn−1 de los casos)
Para reducir el número de serie de la que estamos tratando, vamos a tratar de eliminar la serie bin y dejarnos sólo con bin e d0n en los lados de la parte derecha:
b0n=bn−1+d0n−1b1n=bn−2+d0n−2+bn−2b2n=bn−1
Por lo tanto:
bn=b0n+b1n+b2n=2bn−1+2bn−2+d0n−1+d0n−2
Por una lógica similar, se puede derivar una fórmula para cn:
cn=2cn−1+2cn−2+d1n−1+d1n−2
Note that we already have a a recurrence relation for dn del problema original:
dn=2dn−1+dn−2
Also note that d2n=dn−1 y por lo tanto
d0n+d1n=dn−d2n=dn−dn−1
Esto será muy útil más adelante.
Ahora bien, para an:
an=bn+cn+dn=2bn−1+2bn−2+d0n−1+d0n−2+2cn−1+2cn−2+d1n−1+d1n−2+2dn−1+dn−2=2an−1+an−2+(an−2−dn−2)+dn−1−dn−2+dn−2−dn−3=2an−1+2an−2+dn−1−dn−2−dn−3=2an−1+2an−2+(2dn−2+dn−3)−dn−2−dn−3=2an−1+2an−2+dn−2
Casi allí. Ahora podemos trabajar para eliminar la dn−2 términos, pero el primer aviso de que esta última ecuación puede escribirse como:
dn−2=an−2an−1−2an−2
Y por lo tanto estas dos ecuaciones siguientes:
dn−3=an−1−2an−2−2an−3dn−4=an−2−2an−3−2an−4
Ahora, la aplicación de la relación de recurrencia para dn nuevo:
an=2an−1+2an−2+dn−2=2an−1+2an−2+2dn−3+dn−4=2an−1+2an−2+2an−1−4an−2−4an−3+an−2−2an−3−2an−4=4an−1−an−2−6an−3−2an−4
Así que ese es el final de la recurrencia de la relación:
an=4an−1−an−2−6an−3−2an−4
Esto es algo de un desastre, sino que se comprueba:
a0=1a1=3a2=9a3=27a4=79a5=229a6=657a7=1871a8=5295
Los valores fueron calculados con la recurrencia de la relación y verificado por el programa en python:
import itertools
def find_a_sub_n(n):
c = 0
for q in itertools.product(*([['0','1','2']]*n)):
h = ''.join(q)
if not (('11' in h) and ('00' in h)):
c = c+1
return c