h1

App isométrico: superando las 100000 descargas

junio 26, 2020

App IsométricoLa App Isométrico para Android que publiqué hace algunos años, ha llegado ya a las 100000 descargas en Google Play. Quiero recordar que está hecha con el sencillo entorno App Inventor.

h1

1012 como número Eriam para distintas bases

abril 6, 2020

En una entrada anterior comentaba alguna curiosidad sobre los posibles números Lychrel en diferentes bases numéricas. Buscando alguna variación, como restar los números al revés en vez de sumar, me encontré con la web de Michael P. Greaney en la que además llamaba a estos números Eriam numbers. Para base decimal, encontró que el más pequeño de estos números es el 1012. ¿Qué ocurre si buscamos estos Eriam numbers en otras bases? Lo que encontramos es bastante curioso. Resulta ser que el número 1012 escrito en la propia base es el menor número de Eriam para varias de ellas. En concreto estas (donde escribo después de los dos puntos el número de Eriam en decimal y luego escrito en la propia base que resulta ser 1012):

base 3: 32(1012)
base 6: 224(1012)
base 7: 352(1012)
base 10: 1012
base 12: 1742(1012)
base 15: 3392(1012)
base 18: 5852(1012)
base 22: 10672(1012)
base 28: 21982(1012)
base 31: 29824(1012)
base 36: 46694(1012)
base 46: 97384(1012)
base 52: 140662(1012)
base 58: 195172(1012)
base 60: 216062(1012)
base 63: 250112(1012)

Para el resto de bases (hasta 64 que calculé) y sin contar las bases que son potencias de 2 (las mencionaré más tarde) resulta que hay algún número menor que 1012 que resulta ser número de Eriam. También ocurre que 1012 es a su vez número de Eriam, aunque no el menor.

¿Qué ocurre para bases potencias de 2? Distingo dos casos:

  • base 2 y base 4: después de probar muchos números, no encuentro candidatos a números de Eriam
  • resto de bases potencias de 2: encuentra algún número de Eriam muy pequeño pero casualmente 1012 escrito en esas bases no lo son. Además tienen una estructura similar: encuentran un palíndromo con la siguente expresión: (base/2)(base/2-1)(base/2-1)(base/2), por ejemplo para base 8 el palíndromo al que llega es 4334, para base 16 es 8778, para base 32 es GFFG y para base 64 es WVVW.
h1

Números de Lychrel: buscando sus posibles mínimos en distintas bases

diciembre 2, 2019

Echando un ojeada sobre los números de Lychrel en Wikipedia (un número de Lychrel es un número natural que no puede formar un palíndromo a través del proceso iterativo repetitivo de invertir sus dígitos y sumar los números resultantes) nos aparece una tabla con los posibles números de este tipo más pequeños para ciertas bases escritos en esas bases. Si observamos los últimos números que están escritos, son estos:

26 op (649)
27 pq (701)
28 qr (755)
29 rs (811)
30 st (869)

Parece evidente que hay una secuencia clara de letras (que en realidad representan números) consecutivas. ¿Se conservará la secuencia en bases posteriores?

Combinando un par de programas sobre cambios de base (este y este), buscamos posibles números de Lychrel. El programa en python es este. El posible número de Lychrel es aquel en el que el programa no es capaz de continuar porque alcanza demasiadas iteraciones sin encontrar solución.

Lo encontrado es que la secuencia continúa para las bases 31, 32 y 33:

base 31: 929(tu)
base 32: 991(uv)
base 33: 1055(vw)

pero no para la 34 y 35:

base 34: 1799(liv)
base 35: 1922(ljw)

para regresar con las bases 36, 37, 38, 39, 40 y 41:

base 36: 1259(yz)
base 37: 1331(zA)
base 38: 1405(AB)
base 39: 1481(BC)
base 40: 1559(CD)
base 41: 1639(DE)

(en la que hemos representado el número mayor que z el A).

La secuencia se pierde de nuevo hasta la 46-49 y la 53-57:

base 42: 1595(BF)

base 43: 1762(EG)

base 44: 1891(GH)

base 45: 1934(GI)

base 46: 2069(IJ)
base 47: 2161(JK)
base 48: 2255(KL)
base 49: 2351(LM)

base 50: 2299(JN)

base 51: 2549(NO)

base 52: 4157(1rN)

base 53: 2755(PQ)
base 54: 2861(QR)
base 55: 2969(RS)
base 56: 3079(ST)
base 57: 3191(TU)

base 58: 3247(TV)

base 59: 3361(UW)

base 60: 3569(WX)

Si se quieren probar más secuencias, en este enlace están los posibles números de Lychrel más pequeños para cada base hasta base 20000. Están todos en base decimal, no habría más que cambiarlos de base.

NOTA: el programa subido llega hasta base 50. Puede llegar hasta base 93 sin más que aumentar el código:

def baseN(num, base, numerals=”0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNO”):

añadiendo los términos definidos en la función SY2VA. Ambas pueden aumentarse añadiendo otros caracteres diferentes no usados según las correspondientes bases.

h1

Blender (trabajo de alumnos)

junio 11, 2019


Transformers, de Pablo



Supernenas, de Thalía y Diego



Billy y Mandy, de Sofía

h1

Comics con Blender

junio 5, 2019


Comic hecho por Julia Uría usando Blender


Comic hecho por Lucía Suárez usando Blender

h1

Ejemplos de manipulación de imágenes con GIMP

febrero 7, 2019

Algunos ejemplos de manipulación de imágenes usando GIMP hechos por los alumnos de 4ºESO de TIC.

h1

Blender, trabajo de alumnos

junio 18, 2018


Extracto de algunos trabajos de los alumnos con Blender

h1

Función DESREF de Excel para descifrar el tesoro Beale

octubre 17, 2017

Hace algún tiempo ya hice una entrada sobre esta historia que está expuesta en este comic de Cryptoclub. Los papeles con las cifras están en wikipedia. Tres hojas y solo una resuelta.

Las hojas contienen un conjunto de números. La solución conocida para la segunda es asociar cada número con una palabra de la declaración de independencia de los Estados Unidos de la época y quedarnos solo con la inicial. En su momento realicé programas en LOGO y Python como método de intento de resolución porque son muy versátiles para introducir diferencias en la manera en que podrían estar cifradas las hojas.

Se me ocurrió pensar si con una hoja de cálculo se podría implementar algo sencillo y la función DESREF resultó ser útil a este respecto. Combinándola con la función IZQUIERDA (que toma solo la primera letra de un texto) se puede usar de esta manera:

El uso sería el siguiente:

La primera columna (columna A) contiene solo los números de una de las hojas (en este caso la segunda que está resuelta), un número por fila.

La segunda columna (columna B) contiene el texto contra el que lo queremos confrontar (en este caso la declaración de independencia de los Estados Unidos) tal y como está resuelta la segunda hoja y también una palabra por fila.

En la tercera columna (columna B) escribimos la fórmula en la primera celda:

=IZQUIERDA(DESREF($A$1;A1-1;1))

y el resto autocompletamos.

Podemos observar que nos da el conocido texto “I have deposited…” (con los errores conocidos).

El modo de funcionamiento de DESREF en este caso es sencillo: tomo como origen siempre la primera celda (A1), de ahí que usemos referencias absolutas ($A$1). Nos desplazamos hacia abajo tanto como nos dice el número de la columna A (restando 1 para que todo cuadre), de ahí el uso de (A1-1) que lo hacemos relativo para el uso de autocompletar. El último número de DESREF hace mención a que debe desplazarse uno hacia la derecha desde el origen (es decir, que coja la columna B que contiene el texto ordenado).

Como curiosidad dejo la columna D con el resultado de coger la última letra de cada palabra en vez de la primera, sin más que cambiar la función IZQUIERDA por la función DERECHA.

h1

Triángulo de Pascal en python y convergencia del cociente de los números centrales

octubre 9, 2017

El triángulo de Pascal presenta muchas curiosidades. Fijándome en los números centrales (1,2,6,20,70,252, etc.) me pareció que el cociente de dos de estos números sucesivos convergían al número cuatro o a algún número cercano a cuatro. Podemos ver que:

2/1 = 2
6/2 = 3
20/6 = 3.33
70/20 = 3.5
252/70 = 3.6

Así que aproveché para hacer un par de pequeños programas en python sobre el particular. En primer lugar un programa para sacar las filas del triángulo (empezando a partir de las cuarta fila, dado por sabida la tercera que es 1 2 1):

#programa para calcular el triangulo de Pascal
fila_antigua = [1,2,1]
numero = 20
for i in range (1,numero):
lon_antigua = len(fila_antigua)
fila_nueva = [1]
for j in range(0,lon_antigua-1):
calculo = fila_antigua[j]+fila_antigua[j+1]
fila_nueva.append(calculo)
fila_nueva.append(1)
print(fila_nueva)
fila_antigua = fila_nueva

El resultado son las filas del triángulo:

[1, 3, 3, 1]
[1, 4, 6, 4, 1]
[1, 5, 10, 10, 5, 1]
[1, 6, 15, 20, 15, 6, 1]
[1, 7, 21, 35, 35, 21, 7, 1]
[1, 8, 28, 56, 70, 56, 28, 8, 1]
[1, 9, 36, 84, 126, 126, 84, 36, 9, 1]
[1, 10, 45, 120, 210, 252, 210, 120, 45, 10, 1]
[1, 11, 55, 165, 330, 462, 462, 330, 165, 55, 11, 1]
[1, 12, 66, 220, 495, 792, 924, 792, 495, 220, 66, 12, 1]
[1, 13, 78, 286, 715, 1287, 1716, 1716, 1287, 715, 286, 78, 13, 1]
[1, 14, 91, 364, 1001, 2002, 3003, 3432, 3003, 2002, 1001, 364, 91, 14, 1]

Con pocas modificaciones en el programa calculamos el cociente entre estos números centrales:

#programa para calcular el triangulo de Pascal
#queremos calculas proporciones entre el valor medio
fila_antigua = [1,2,1]
numero = 40000
centro2 = 2
centro1 = 1
for i in range (1,numero):
lon_antigua = len(fila_antigua)
fila_nueva = [1]
for j in range(0,lon_antigua-1):
calculo = fila_antigua[j]+fila_antigua[j+1]
fila_nueva.append(calculo)
fila_nueva.append(1)
#print(fila_nueva)
print (centro2/centro1)
if (lon_antigua%2) == 0:
centro1 = centro2
centro2 = fila_nueva[int(len(fila_nueva)/2)]
#print(centro2)
fila_antigua = fila_nueva

Hemos calculado con 40000 filas. Los últimos resultados son estos:

3.999899964987746
3.999899964987746
3.9998999699909974
3.9998999699909974
3.9998999749937485
3.9998999749937485
3.999899979995999
3.999899979995999
3.9998999849977497
3.9998999849977497
3.9998999899989998
3.9998999899989998
3.99989999499975
3.99989999499975
3.9999

Se ve claramente que parece que converge a 4.

Podemos intentar hacer un poco de matemáticas a ver si se puede comprobar esta convergencia. Para ello podemos expresar estos números centrales como el cociente binomial:

Podemos observar que los números centrales expresados como cociente binomial son de la forma (2n n), pues son (2 1), (4 2), (6 3) que sería el siguiente que no sale en la imagen, etc. Según esto el cociente entre números centrales sucesivos en forma de cociente binomial sería (2[n+1] n+1) / (2n n). Desarrollando con la fórmula del binomio y simplificando, este cociente puede expresarse así: (2n+2)*(2n+1)/(n+1)*(n+1). Calculando este límite cuando n tiende a infinito (puede verse el resultado en este enlace) nos da el resultado de 4.

PD.: hace algún tiempo había hecho un vídeo sobre una extensión del triángulo de Pascal a tres dimensiones

h1

Algo, juego hecho con App Inventor

junio 16, 2017

‘Algo’ es un juego diseñado por Sara y María (alumnas de TIC, 1ºBachillerato) para probar tus conocimientos sobre cultura general, que culmina con una pregunta final de lógica, cuya superación será premiada con un minijuego especial, que deberás descubrir por ti mismo.

¡Descarga el apk de ‘Algo’ aquí!