R Shiny: herramienta en potencia para facilitar el proceso de enseรฑanza-aprendizaje
ยกHola a todos amigos!
En esta hermosa tarde de noviembre, aprovecharemos para platicarles un poco acerca del lenguaje de programaciรณn R y la poderosa librerรญa Shiny, con la cual puedes diseรฑar tu propia aplicaciรณn web interactiva de manera increรญblemente sencilla, te invitamos a conocer el poder de R Shiny probando la siguiente app, con la que podrรกs conocer entre otras cosas, las propiedades de los primeros diez millones de nรบmeros naturales:
https://atltl.shinyapps.io/niko/
En la imagen de portada (al inicio), se muestra una grafica de pastel con cinco rebanadas, las cuales representan la proporciรณn de los factores primos del numero 123123, los cuales son:
3, 7, 11, 13 y 41.
Si hacemos el producto de los factores primos de un numero, reconstruimos el numero original:
3 x 7 x 11 x 13 x 41 = 123123
Nota curiosa:
ยฟRecuerdan algo asรญ como?
ยซEl orden de los factores no altera el productoยป
Esta oraciรณn habla especรญficamente de una multiplicaciรณn (producto). Los factores no son mas que los elementos que se multiplican. Pero esto no aplica para cualquier operaciรณn. Por ejemplo, en la divisiรณn. Cuando no hay alteraciรณn por el orden de operado, decimos que la operaciรณn es conmutativa.
La aplicaciรณn fue bautizada con el nombre ยซNicรณmacoยป, en honor al filรณsofo y matemรกtico Nicรณmaco de Gerasa (primero en clasificar los nรบmeros naturales en abundantes, deficientes y perfectos, segรบn la suma de sus divisores propios) te permite conocer tanto los divisores propios de un nรบmero como la suma de los mismos. Obtener los factores primos y su clasificaciรณn segรบn de Gerasa, entre otras cosas.

Con Nicรณmaco, podemos introducir los conceptos de nรบmero natural, numero primo y compuesto, de divisores y factores, entre otros, de una manera didรกctica, interactiva y divertida. Aprovechando la tecnologรญa que ofrece la amplia paqueterรญa de librerรญas de R y unas cuantas funciones propias.
Ademรกs, Nicรณmaco contiene un espiral de Ulam interactivo, con el que se puede, una vez comprendidas las definiciones de nรบmeros primos y compuestos (y saber que no existe una ยซfรณrmulaยป para obtener el n-รฉsimo primo) sumergirnos en la curiosidad visual del aparente orden en el caos de distribuciรณn primal sobre estos fabulosos espirales, donde podrรก controlar tanto el nรบmero de vueltas cรณmo el nรบmero de entradas.

A continuaciรณn presentamos una intrigante animaciรณn del espiral de Ulam que se obtuvo variando el numero de entradas mientras se mantenรญa un numero de vueltas constante, con 10 capturas por segundo…

Aquรญ dejamos el script con las funciones que se utilizaron para generar gifs de este tipo.
A la funciรณn create_gif() se le indica intervalo [a,b] y numero de vueltas. Se crean (b-a) imรกgenes en el directorio de trabajo en el que se encuentre. Con las que puede generar un gif con ayuda de una aplicaciรณn como PicGif (OSX).
## Script que genera b-a graficas para creac gif
## Function that plots Ulam Arquimedian Spiral (Pseudo Stach spiral, Stach gives 1 turn por cada cuadrado perfecto)
prime.spiral <- function(obs,vueltas){
vueltas <- vueltas * 2
data.frame(x = seq(0, vueltas * pi, length.out = obs), primo = sapply(1:obs,chkp)) %>% mutate(theta = x %% (2 * pi), r = x) %>%
ggplot() + aes(x = theta, y = r, colour = primo) +
coord_polar(start = - pi / 2, direction = - 1) +
ggtitle(expression(Espiral~r == theta)) + geom_point() +
ylim(0, vueltas * pi) + xlim(0, 2 * pi) +
labs(x = NULL, y = NULL)
}
create_gif <- function(a,b,vueltas){
v <- a:b
for(n in v){
myplot <- prime.spiral(n, vueltas)
png(paste("plot", n, ".png", sep = ""))
print(myplot)
dev.off()
}
}
Se recomienda crear una carpeta especial para almacenar los archivos png creados por create_gif() y asignarla como directorio de trabajo. Una vez hecho esto basta con introducir las funciones anteriores y hacer:
create_gif(num_entradas_inicial, num_entradas_final, num_vueltas)
Ejemplo:
create_gif(100, 150, 20)
crea (150-100) = 50 imรกgenes de un espiral de veinte vueltas. iniciando con 100 entradas y aumentando de una en una hasta 150. Con estas 50 imรกgenes se puede crear un gif como el mostrado arriba con ayuda de algรบn software que genere gifs a partir de un conjunto de imรกgenes, software muy comรบn hoy en dรญa.
ยกEspero que les haya parecido interesante y les deseo lo mejor!
โAtl Tlachinolli



