Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Problema 3
En cierto idioma, el alfabeto tiene nicamente dos letras : A y B . Una palabra es "peridica" si es del
tipo PP... P siendo P una palabra. Por ejemplo, la palabra ABAABAABA es del tipo PPP con P = ABA
Se forma una sucesin de palabras de la siguiente manera :
* la primera palabra es A y la segunda es B
* para cada k > 2 , la palabra k 2 se forma escribiendo la palabra k 1 a la derecha de la palabra k 2
As, las primeras palabras de la sucesin sern A , B , AB , BAB , ABBAB , ...
Hay en esa sucesin alguna palabra "peridica" ?
Resolucin
Cuestin inicial
El nmero de " trminos " de cada palabra, de forma ordenada, coincide con una sucesin de Fibonacci (1,1)
El nmero de cifras sigue la sucesin de Fibonacci de primeros trminos f1 = 1, f2 = 1
> restart:
> f[1]:=1;
fi := fi 2 + fi 1
f1 := 1
> f[2]:=1;
f2 := 1
> for i from 3 to 10 do f[i]:=f[i-2]+f[i-1] od;
f3 := 2
f4 := 3
f5 := 5
f6 := 8
f7 := 13
f8 := 21
f9 := 34
f10 := 55
k1
+ ak 1
> a[1]:=1;
a1 := 1
> a[2]:=2;
a2 := 2
> for i from 3 to 10 do a[i]:=a[i-2]*10^f[i-1]+a[i-1] od;
a3 := 12
a4 := 212
a5 := 12212
a6 := 21212212
a7 := 1221221212212
a8 := 212122121221221212212
a9 := 1221221212212212122121221221212212
a10 := 2121221212212212122121221221212212212122121221221212212
> a[k]=a[k-2]*10^f[k-1]+a[k-1];
ak = ak 2 10
k1
+ ak 1
Vamos a denominar b( k ) = fk
> b:=k->f[k]:'b(k)'=b(k);
b ( k ) = fk
> seq('b'(k)=b(k),k=1..10);
[ s1 = [ 1 ], n( s1 ) = 1 ], [ s2 = [ 2 ], n( s2 ) = 1 ], [ s3 = [ 12 ], n( s3 ) = 2 ], [ s4 = [ 212 ], n( s4 ) = 3 ], [ s5 = [ 12212 ], n( s5 ) = 5 ],
[ s6 = [ 21212212 ], n( s6 ) = 8 ], [ s7 = [ 1221221212212 ], n( s7 ) = 13 ], [ s8 = [ 212122121221221212212 ], n( s8 ) = 21 ],
[ s9 = [ 1221221212212212122121221221212212 ], n( s9 ) = 34 ]
Podemos obtener los pares anteriores utilizando la funcin u( k )
> u:=k->[s[k]=[a[k]],n(s[k])=b(k)]:'u(k)'=u(k);
u( k ) = [ sk = [ ak ], n( sk ) = fk ]
> u(1);
[ s1 = [ 1 ], n( s1 ) = 1 ]
> u(2);
[ s2 = [ 2 ], n( s2 ) = 1 ]
> u(3);
[ s3 = [ 12 ], n( s3 ) = 2 ]
> u(4);
[ s4 = [ 212 ], n( s4 ) = 3 ]
> u(5);
[ s5 = [ 12212 ], n( s5 ) = 5 ]
Ley de formacin
La lista ordenada sk + 1 la formamos "pegando" a la lista sk 1 la lista sk
sk + 1 = [ sk 1 ] [ sk ]
La lista sk + 1
Estudiemos s5 = [ 12212 ]
a5 = a3 103 + a4
s5 = [ s2 ] [ s3 ]
[ 12212 ] = [ 12 103 ] + [ 212 ]
[ 12212 ] = [ 12000 ] + [ 212 ]
[ [ 12212 ] = [ 12 ] ] [ 212 ]
> div(5)=numtheory[divisors](5);
div( 5 ) = { 1, 5 }
Los f5 = 5 elementos no permiten la existencia de perodo , pues tendran que ser todos iguales
Hasta aqu ninguno de los trminos de la sucesin dada admite perodo
Adems, el nmero de "unos" es f3 = 2 y el nmero de "doses" es f4 = 3 , dos nmeros sucesivos de Fibonacci
con mcd( 2, 3 ) = 1 => no es posible que haya un perodo
Veamos s6 :
> u(6);
[ s6 = [ 21212212 ], n( s6 ) = 8 ]
> div(f[6])=numtheory[divisors](f[6]);
div( 8 ) = { 1, 2, 4, 8 }
Los posibles perodos deberan ser de 2 4 dgitos
Ni 21 ni 2121 lo son
> u(7);
> div(f[7])=numtheory[divisors](f[7]);
[ s7 = [ 1221221212212 ], n( s7 ) = 13 ]
div( 13 ) = { 1, 13 }
No admite perodo
Adems , el nmero de "unos" es 5 y el nmero de "doses" es 8 , dos nmeros sucesivos de Fibonacci,
con
mcd( 5, 8 ) = 1
=> no es posible que haya perodo
Veamos s8 :
> u(8);
> div(f[8])=numtheory[divisors](f[8]);
[ s8 = [ 212122121221221212212 ], n( s8 ) = 21 ]
div( 21 ) = { 1, 3, 7, 21 }
s8 = [ s6 ] [ s7 ] = [ s6 ] [ s5 ] [ s6 ]
s8 := 212122121221221212212
s8 = [ 21212212 ] [ 1221221212212 ]
Los posibles perodos seran de 3 7 dgitos
( 212 ) 122 ... => no lo es ,
( 2121221) 2122 ... => no lo es
Adems , el nmero de "unos" es 8 y el nmero de "doses" es 13, dos nmeros sucesivos de Fibonacci,
con
mcd( 8, 13 ) = 1
=> no es posible que haya perodo
Veamos s9
> u(9);
> div(f[9])=numtheory[divisors](f[9]);
[ s9 = [ 1221221212212212122121221221212212 ], n( s9 ) = 34 ]
div( 34 ) = { 1, 2, 17, 34 }
Los posibles perodos son de 2 17 dgitos
12 no lo es ( 1221... )
( 12212212122122121) ( 2 ... ) no lo es pues el posible segundo perodo empieza por 2 ;
Por otra parte , s9 termina en ...2 y no en 1
Adems , el nmero de "unos" es 13 y el nmero de "doses" es 21 , dos nmeros sucesivos de Fibonacci,
con
mcd( 13, 21 ) = 1
=> no es posible que haya perodo
Veamos s10
> u(10);
> div(f[10])=numtheory[divisors](f[10]);
** Ampliacin
Veamos otra construccin de la sucesin dada
Sucesin { c } equivalente a la { a }
> c[1]:=1;
c1 := 1
> c[2]:=2;
c2 := 2
> c[3]:=12;for j from 1 to 8 do c[j+3]:=c[j+1]*10^f[j+2]+c[j]*10^f[j+1]+c[j+1] od;
c3 := 12
c4 := 212
c5 := 12212
c6 := 21212212
c7 := 1221221212212
c8 := 212122121221221212212
c9 := 1221221212212212122121221221212212
c10 := 2121221212212212122121221221212212212122121221221212212
c11 := 12212212122122121221212212212122122121221212212212122121221221212212212122121221221212212
La nueva ley de formacin cn equivalente a la dada an es :
cj + 3 = cj + 1 10
j+2
+ cj 10
j+1
+ cj + 1
cj + 3 = [ cj + 1 ] [ cj ] [ cj + 1 ]
Ejemplo : c7
f
c7 = c5 10 + c4 10 + c5
[ 1221221212212 ] = [ 1221200000000 ] + [ 21200000 ] + [ 12212 ]
Comprobacin
> [1221200000000]+[21200000]+[12212];
[ 1221221212212 ]
[ 1221221212212 ] = [ 12212 ] [ 212 ] [ 12212 ]
c7 = [ c5 ] [ c4 ] [ c5 ]
Tabla [ fi, ci, [ ci ] ]
f.i c.i
1
c1 1
c2 2
c3 1 2
c4 2 1 2
c5 1 2 2 1 2
c6 2 1 2 1 2 2 1 2
13 c7 1 2 2 1 2 2 1 2 1 2 2 1 2
21 c8 2 1 2 1 2 2 1 2 1 2 2 1 2 2 1 2 1 2 2 1 2
Observamos que la sucesin de palabras tiene dos clases : las que comienzan por [ 1 2 ] que son las c2 k 1
y las que comienzan por [ 2 1 ] que son las c2 k ( para k > 1 )
A partir de esa "base" ( [ 1 2 ] [ 2 1 ] las columnas 3 y siguientes son iguales
Ejemplo : c8 con fb8 = 21
c8 := 212122121221221212212
c8 = [ c6 ] [ c7 ] = [ c6 ] [ c5 ] [ c6 ]
c8 = [ 21212212 ] [ 1221221212212 ]
*** Ampliacin
Otra forma de tratar las sucesiones de Fibonacci
Ya hemos visto anteriormente que , p.ej. , los 10 primeros nmeros de Fibonacci ( de base 1, 1 ) son :
> restart:
> with(combinat,fibonacci):
> seq(f[i]=fibonacci(i),i=1..10);
fn =
1
1
5 1
2
5 1
1
1
5 +1
2
5 +1
> factor(");
fn =
1
5
2
1 n
1 1
5 + +
2 2 2
n
5
( 5 1) ( 5 + 1)
5
fn =
5
1
5
2
2
n 1
+ + 5
2
2
fb( n ) =
1
5
1
5
2
1 n 1 1
n
5 + + +
5
2 2 2
> 'fb(6)'=fb(6);'fb(6)'=simplify(rhs("));
fb( 6 ) =
1
5
1 1
6 1
5 +
5
2 2
2
1 6
5 +
2
fb( 6 ) = 8
> 'fb(n)'=fb(n);'fb(n-1)'=fb(n-1);
fb( n ) =
fb( n 1 ) =
1
5
1
5
1
5
2
1 1
5 +
2 2
1 n 1 1
n
5 + + +
5
2 2 2
( n 1 ) 1
5
1 ( n 1 )
5 +
2
> seq('fb'(h)=simplify(fb(h)),h=1..10);
fb( 1 ) = 1, fb( 2 ) = 1, fb( 3 ) = 2, fb( 4 ) = 3, fb( 5 ) = 5, fb( 6 ) = 8, fb( 7 ) = 13, fb( 8 ) = 21, fb( 9 ) = 34, fb( 10 ) = 55
> 'fb(n)-fb(n-1)'=(1/2+sqrt(5)/2)^n*(3*sqrt(5)/10-1/2)-(1/2-sqrt(5)/2)^n*(3*sqrt(5)/10+1/2);
1 1
n 3
fb( n ) fb( n 1 ) = +
5
2 2
10
1 1
5
2 2
1 n 3
5 +
2 10
1
5 +
2
> 'fb(6)-fb(5)'=subs(n=6,rhs("));
1 1
fb( 6 ) fb( 5 ) = +
2 2
6 3
5
10
1 1
5
2 2
1 6 3
5 +
2 10
1
5 +
2
> 'fb(6)-fb(5)'=simplify(expand(rhs(")));'fb'(4)=simplify(fb(4));
fb( 6 ) fb( 5 ) = 3
fb( 4 ) = 3
> seq(f(k)=fibonacci(k),k=1..20);
f( 1 ) = 1, f( 2 ) = 1, f( 3 ) = ( 2 ), f( 4 ) = ( 3 ), f( 5 ) = ( 5 ), f( 6 ) = ( 2 )3, f( 7 ) = ( 13 ), f( 8 ) = ( 3 ) ( 7 ), f( 9 ) = ( 2 ) ( 17 ),
f( 10 ) = ( 5 ) ( 11 ), f( 11 ) = ( 89 ), f( 12 ) = ( 2 )4 ( 3 )2, f( 13 ) = ( 233 ), f( 14 ) = ( 13 ) ( 29 ), f( 15 ) = ( 2 ) ( 5 ) ( 61 ),
f( 16 ) = ( 3 ) ( 7 ) ( 47 ), f( 17 ) = ( 1597 ), f( 18 ) = ( 2 )3 ( 17 ) ( 19 ), f( 19 ) = ( 37 ) ( 113 ), f( 20 ) = ( 3 ) ( 5 ) ( 11 ) ( 41 )
> seq(f(n)-f(n-1)=fibonacci(n)-fibonacci(n-1),n=2..10);
f( 2 ) f( 1 ) = 0 , f( 3 ) f( 2 ) = 1 , f( 4 ) f( 3 ) = 1 , f( 5 ) f( 4 ) = 2 , f( 6 ) f( 5 ) = 3 , f( 7 ) f( 6 ) = 5 , f( 8 ) f( 7 ) = 8 ,
f( 9 ) f( 8 ) = 13, f( 10 ) f( 9 ) = 21
> f(n)-f(n-1)=f(n-2);
f( n ) f( n 1 ) = f( n 2 )
La sucesin diferencia finita primera 1 = f( n ) f( n 1 ) de f( n ) es la misma de Fibonacci de ndice n 2 :
1 = f( n 2 )
Ahora se planteara la demostracin de que son primos entre s fb( n 1 ) y fb( n ) , siendo :
fb( n ) =
fb( n 1 ) =
1
5
1
5
1 1
5
2 2
1 1
5 +
2 2
n 1 1
5 + +
2 2
( n 1 ) 1 1
5
2 2
n
5
( n 1 )