Se desarrollan temas de matemáticas con el uso del software Wolfram Mathematica. . germanalvarado@usta.edu.co
martes, 4 de diciembre de 2018
Sucesión de Kolakoski
Se debe al artista norteamericano William Kolakoski (1944-1997) quien tenía como pasatiempo la matemática recreativa, la publicó en la revista American Mathematical Monthly en 1965, aunque ya en 1939 el matemático Rufus Oldenburger había hecho mención de ella.
La Sucesión de Kolakoski tiene como primeros términos:
1 2 2 1 1 2 1 2 2 1 2 2 1 1 2 1 1 2 2 1 2 1 1 2 1 2 2 1 1 2 1 1 2 1 2 2 1 2 2 1 1 . . .
Para entender como se construye primero debemos hablar de la sucesión contadora de otra sucesión dada (sobre la cual publiqué el 20 de Noviembre de 2018 aquí), que es la sucesión formada por los enteros positivos que indican el número de bloques de símbolos consecutivos iguales en la sucesión. Por ejemplo, la sucesión contadora de la sucesión:
a b b a a b b b a b a a b b . . .
es la sucesión:
1 2 2 3 1 1 2 2 . . .
pues empieza con 1 letra a, luego 2 letras b, 2 letras a, 3 letras b y así sucesivamente.
Ahora sí, la principal característica de la Sucesión de Kolakoski es que ella es su propia sucesión contadora.
En Mathematica
ko = {1, 2, 2};
Do[Which[ko[[n]] == 1 && Last[ko] == 1, AppendTo[ko, 2],
ko[[n]] == 1 && Last[ko] == 2, AppendTo[ko, 1],
ko[[n]] == 2 && Last[ko] == 1, AppendTo[ko, {2, 2}];
ko = Flatten[ko], ko[[n]] == 2 && Last[ko] == 2,
AppendTo[ko, {1, 1}]; ko = Flatten[ko]], {n, 3, 20}]
ko
{1, 2, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 1, 1, 2}
Función contadora
La podemos calcular por medio de:
contadora[list_List] := Module[{j = 1,
con = {}, len = Length[list]}, lis = Map[ToString, list];
Do[Which[n == len - 1 && lis[[n]] == lis[[n + 1]], j++;
AppendTo[con, j], n == len - 1 && lis[[n]] != lis[[n + 1]],
AppendTo[con, {j, 1}], lis[[n]] == lis[[n + 1]], j++,
lis[[n]] != lis[[n + 1]], AppendTo[con, j]; j = 1], {n, len - 1}];
Flatten[con]]
La función contadora[ ] aplicada a la salida de la Sucesión de Kolakoski nos da una sub lista de la Sucesión de Kolakoski compuesta por 20 términos, el número que habíamos puesto para calcularla.
contadora[ko]
{1, 2, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 2, 1}
Length[%]
20
Para aprender más sobre Mathematica ingrese aquí sitio de aprendizaje de Wolfram o en mi website ustamathematica.wixsite.com/basicas
Suscribirse a:
Comentarios de la entrada (Atom)
No hay comentarios.:
Publicar un comentario