domingo, 18 de marzo de 2012

Funciones recursivas en las hojas de cálculo

Cuando yo programaba hace años en Pascal se nos vendía su posibilidad de usar la recursión, es decir, que una función se llamara a sí misma, en declaraciones del tipo

Factorial(n)=n*factorial(n-1)

Esta y otras características nos hicieron abandonar el Basic como un lenguaje más primitivo y que no admitía funciones recursivas ni por asomo. Pasados bastantes años dejé la confección de programas ejecutables y consiguientemente el Pascal. Ahora que mis trabajos, por voluntad propia, los restrinjo a las hojas de cálculo y a su Basic, no uso la recursión…hasta hoy.

Preparando una próxima entrada se me ocurrió usar funciones recursivas en Excel, OpenOffice y LibreOffice (en Google Docs no funcionan las macros en Basic) con la sorpresa de que sí funcionaban bastante bien.

Toda función recursiva contiene una llamada a sí misma, directa o indirectamente a través de otra función. Como esto nos puede llevar a un proceso sin fin, debe contener también un código de parada, que suele ser una definición en un caso concreto, como veremos en los ejemplos.

La recursividad no se resuelve hasta que no desemboca en ese caso de parada. Mientras tanto hay que guardar los datos pendientes situándolos en una pila. Por tanto, ahí está el único problema de usar la recursividad en las hojas, y es que se puede agotar la pila si se alargan mucho los cálculos, con el consiguiente mensaje de error. Un fallo de principiante es programar una función recursiva sin facilitar su salida. En ese caso el error será más grave aún: un cálculo sin fin.

Explicamos a continuación algunas funciones recursivas, comenzando con el factorial, que es la más popular y que nos servirá para explicar algunos detalles:

Public Function factorial(n)
Dim f
If n = 0 Then f = 1 Else f = factorial(n - 1) * n
factorial = f
End Function

Es fácil entender  el código: Para evitar confusiones, comenzamos almacenando el factorial en la variable f, para al final recoger su valor en factorial. El cálculo de f es el clásico de la función n!: si n es cero, definimos el factorial como 1 y en caso contrario multiplicamos por n el factorial de n-1.

Prueba esta función en cualquiera de las tres hojas propuestas más arriba.

Este primer ejemplo contiene las dos partes imprescindibles en una función de este tipo:

- Alguna asignación de un valor concreto, que servirá para detener la primera fase de lectura de datos y comenzar los cálculos hacia atrás. Aquí es la asignación 0!=1

- La definición recursiva propiamente dicha, que, como es conocido, consiste en exigir que n!=n*(n-1)!

Lo explicamos con un esquema:






















Al intentar calcular el factorial de 7, el programa se encuentra con una referencia al factorial de 6, guarda el 7 en la pila y se dedica a calcular el nuevo factorial. Como no puede, almacena el 6 encima del 7 (es una pila) y lo intenta con el 5, y así va de fracaso en fracaso (flecha descendente) hasta llegar al 0.

El valor 0 admite el cálculo, porque está definido como 1. Resuelto esto, es como si el programa se preguntara: ¿por dónde iba? Acude a la pila y ve un 1, con lo que ya puede calcular 1!=1*0!=1 y así sigue (flecha ascendente) buscando datos en la pila y resolviendo los cálculos según la definición recursiva.

Es evidente que para números grandes la pila se puede agotar por falta de memoria asignada.

Con esta función recursiva (la más inútil que me he inventado nunca) puedes tener una idea de la amplitud de la pila de tu hoja de cálculo.

Public Function identidad(n)
Dim i
If n = 1 Then i = 1 Else i = identidad(n - 1) + 1
identidad = i
End Function


La he elegido para que no influya la magnitud de los números, sino la cantidad de ellos que permanecen en la pila. Con ella he llegado la valor n=3270 como el último que no me da error. En los siguientes no consigo realizar el cálculo.

¿Qué margen tendrá tu hoja de cálculo? Prueba a ver.


Ejemplos varios

Si deseas el enésimo número triangular, sólo tienes que usar este código:

Public Function triang(a)
Dim p
If a = 1 Then p = 1 Else p = triang(a - 1) + a
triang = p
End Function

También se entiende bien: en los números triangulares vamos añadiendo en cada paso una base del triángulo nueva con a elementos. Prueba esta función y si quieres compara los resultados con la clásica fórmula Tn=n(n+1)/2.

¿Puedes analizar esta función?

Public Function cuad(a)
Dim p
If a = 1 Then p = 1 Else p = cuad(a - 1) + 2 * a - 1
cuad = p
End Function

¿Por qué produce como resultado el cuadrado de a? Este es un bonito ejemplo de elevar un número al cuadrado sin multiplicar en ningún momento.

Y ya que estamos con números poligonales, podríamos generarlos todos con una función recursiva única que dependiera de a y también del número de lados del polígono. ¿Te atreves con ella?

¿Y qué opinas de esta, con dos variables?¿Qué resultado produce?

Public Function combi(m, n)
Dim c
If n = 0 Then c = 1 Else c = combi(m, n - 1) * (m - n + 1) / n
combi = c
End Function

Ahora un ejemplo más serio:

En una entrada anterior (http://hojaynumeros.blogspot.com/2012/02/suma-de-los-elementos-de-todos-los.html) descubrimos que la suma de todos los elementos de los subconjuntos de un conjunto de n elementos venía dada por la fórmula de recurrencia

    Sn=2Sn-1+ n*2n-1

y que da lugar a esta sucesión de valores en función de n

0, 1, 6, 24, 80, 240, 672, 1792, 4608, 11520, 28160, 67584, 159744, 372736, 860160, 1966080,…  (http://oeis.org/A001788)

Si definimos una función según esta recurrencia podremos reproducir esta lista en nuestra hoja de cálculo. Podría ser esta:

Public Function sumaelem(n)
Dim s
If n = 1 Then s = 1 Else s = 2 * sumaelem(n - 1) + n * 2 ^ (n - 1)
sumaelem = s
End Function

Con ella hemos construido esta tabla que coincide con la de OEIS



Un ejemplo elegante

Define esta función de texto

Public Function simetrico$(a$)
Dim s$
If a$ = "" Then s$ = "" Else s$ = simetrico(Right$(a$, Len(a$) - 1)) + Mid$(a$, 1, 1)
simetrico = s$
End Function

Escribe una palabra en una celda y aplícale esta función desde otra celda ¿Cuál es el resultado?

Como ves, todo esto es bastante divertido, pero no muy útil a causa del agotamiento del espacio de memoria asignado a la pila de datos.

Y ahora tú. ¿Cómo hallarías, mediante una función recursiva, el término general en estas sucesiones?

Progresiones aritméticas y geométricas.
La sucesión de Fibonacci (¡cómo no!)
La enésima potencia de un número dado.

lunes, 20 de febrero de 2012

El primorial


(Con esta entrada participamos en el Carnaval de MatemáticasEdición 3.1 cuyo anfitrión es  Scientia potentia est)




La palabra primorial se suele usar con tres significados distintos:

(1) Un número es primorial si es igual al producto de los k primeros números primos. Por ejemplo, 210=2*3*5*7. Los primeros primoriales son

1, 2, 6, 30, 210, 2310, 30030, 510510, 9699690, 223092870, 6469693230, 200560490130, 7420738134810, 304250263527210, 13082761331670030,…
(https://oeis.org/A002110)

(2) Llamaremos primorial de un número N y lo representaremos por N# al producto de todos los números primos menores o iguales que él. Los primeros valores de esta función son (están incluidos n=0 y n=1)

1, 1, 2, 6, 6, 30, 30, 210, 210, 210, 210, 2310, 2310, 30030, 30030, 30030, 30030, 510510, 510510, 9699690, 9699690, 9699690, 9699690, 223092870, 223092870,… 
(https://oeis.org/A034386)

(3) Llamaremos primo primorial o primo de Euclides al que tiene la forma p#+1, siendo p primo. Esta definición recuerda que son estos los números usados por Euclides en su demostración de la infinitud del conjunto de primos. Los primeros son

2, 3, 7, 31, 211, 2311, 30031, 510511, 9699691, 223092871, 6469693231, 200560490131, 7420738134811, 304250263527211,...
(https://oeis.org/A006862)

También se suelen llamar primos primoriales a los de la forma p#-1

Como ves, tenemos donde elegir. Nos quedaremos con las dos primeras. Es fácil programar en el Basic de las hojas de cálculo la función primorial de N si posees la función ESPRIMO, ya explicada en este blog. (Puedes buscarla en el Apéndice de http://hojamat.es/publicaciones/hojanum1.pdf)
Su código podría ser

Public Function primorial(n)
Dim k, p
p = 1
For k = 1 To n
If esprimo(k) Then p = p * k
Next k
primorial = p
End Function

No es el más eficiente, pero para explicaciones vale. Con él se puede formar la tabla de la función


Como era de esperar, su crecimiento es notable. A partir de la tabla se puede construir el gráfico




















Se ha usado una escala logarítmica para ver mejor su estructura escalonada.

¿Dónde tienen lugar los saltos?¿Por qué unos tramos son de dos, otros de cuatro o de cinco? Preguntas con respuesta sencilla que te puedes plantear.

Algunas propiedades

Todos los números primoriales están libres de cuadrados y cada uno de ellos posee más factores primos distintos que los números menores que él. Ambas propiedades son triviales. La segunda se puede expresar de otra forma:

La función omega de un número primorial tiene mayor valor que las correspondientes a los números que le preceden.

Recuerda que la función omega cuenta los factores primos distintos de un número natural. No hay que cavilar mucho para entenderlo. Esta definición nos proporciona otra idea fácil:

Para un valor dado k de la función omega, el primorial k# es el número más pequeño con ese valor de omega.

El primorial y el factorial

La forma de crecer el primorial nos recuerda a la del factorial. ¿Cuál es mayor? Evidentemente, el factorial. ¿Qué números forman el cociente n!/n#?

Pues a ese cociente entenderás que le podamos llamar el “compositorial de n”. Reflexiona sobre el porqué de ese nombre. ¿Lo has encontrado?, pues demuestra esto:

Dos primoriales consecutivos se corresponden con el mismo compositorial.

Tienes los compositoriales en http://oeis.org/A036691 y la función compositorial de un número en http://oeis.org/A049614

Descomposición factorial de un compositorial

Este es un buen momento para recordar la fórmula de Polignac
(Ver http://hojaynumeros.blogspot.com/2009/02/formula-de-polignac.html)


Si descompones cualquier factorial mediante esa fórmula, bastará restarle una unidad a cada factor primo para que resulte la descomposición factorial del compositorial. No es tan complicado como parece.

Lo vemos con un ejemplo: Descomponer en factores primos el compositorial de 18.

Puedes abrir la hoja de cálculo polignac.xls o polignac.ods desde la dirección
http://hojamat.es/sindecimales/divisibilidad/herramientas/herrdiv.htm
Con ella descubrimos que 18! Se descompone tal como se ve en la imagen:


Restamos una unidad a cada exponente y nos resultará comp(18)=215*37*52*7=12541132800

Si visitas http://oeis.org/A049614 podrás comprobar este resultado.

En realidad, el primorial de N es el radical de su factorial. Parece un trabalenguas, pero es que se llama radical de un número al mayor divisor libre de cuadrados que tenga, lo que nos lleva a que el radical es el producto de los factores primos elevados todos a la unidad. Eso es lo que significa el primorial respecto al factorial. Por cierto, es una función multiplicativa, pero esto se alarga y es mejor dejarlo.

domingo, 12 de febrero de 2012

Suma de los elementos de todos los subconjuntos

Tomemos el conjunto formado por los n primeros números naturales {1, 2, 3, …, n}. Imagina que formamos todos los subconjuntos posibles y que en cada uno sumamos los elementos, acumulando después todas las sumas en un total general ¿Cuánto valdrá esa suma S(n) de todos los elementos de todos los subconjuntos? Al conjunto vacío le asignamos suma 0.

Te damos un ejemplo:

S(4)=80, porque tendríamos que sumar (escribimos entre paréntesis la suma parcial de cada subconjunto) lo siguiente: (0)+(1)+(2)+(3)+(4)+(1+2)+(1+3)+(1+4)+(2+3)+(2+4)+(3+4)+(1+2+3)+(1+2+4)+(1+3+4)+(2+3+4)+(1+2+3+4)=10+3+4+5+5+6+7+6+7+8+9+10=27+26+27=80

Los primeros resultados para la función S son S(1)=1; S(2)=6; S(3)=24; S(4)=80; S(5)= 240; S(6)=672, formando la sucesión 1, 6, 24, 80, 240, 672, 1792, 4608, 11520, 28160, 67584, 159744...

Intentemos justificar estos resultados

Podemos encontrar una definición por recurrencia. Que S(1)=1 y S(2)=6 es fácil de justificar. A partir de ahí razonamos de una forma muy común en Combinatoria: Sea Sn-1 la suma de los subconjuntos de {1, 2, 3, …, n-1}. Para formar la suma Sn deberemos añadir el elemento n a los subconjuntos.

Entonces estos serán de dos formas:

(a) Subconjuntos que no contienen al elemento n. Su suma será la misma Sn-1

(b) Subconjuntos que contienen al elemento n. Estarán formados por los subconjuntos de 1, 2, 3, …, n-1} a los que añadimos a cada uno el elemento nuevo n. El número de tales subconjuntos equivale a 2n-1. Como cada uno se ha incrementado en el elemento n, la suma se habrá incrementado en n*2n-1. Luego será Sn-1+ n*2n-1.

Si reunimos las sumas (a) y (b) nos resulta la fórmula de recurrencia:

       Sn=2Sn-1+ n*2n-1

En efecto: S(3)=2*6+3*4=12+12=24;  S(4)=2*24+4*8=48+32=80; S(5)=2*80+5*16=160+80=240.

Es fácil programarlo en hoja de cálculo. Sólo incluimos una tabla creada así sin dar más detalles:

S(n)      2n-1    n
1           1         1
6           2         2
24         4         3
80         8         4
240      16        5
672      32        6
1792    64        7
4608  128        8

Generalmente nos sentimos más a gusto con una fórmula algebraica. Ahí va:

        S(n)=n(n+1)2n-2

S(1)=1*2*(1/2)=1; S(2)=2*3*1=6; S(3)=3*4*2=24; S(4)=4*5*4=80…

Se puede demostrar por inducción. Vemos que se cumple para los primeros casos, luego podemos suponer que se cumple para n-1, es decir, que Sn-1=(n-1)*n*2n-3.

Aplicamos la fórmula de recurrencia presentada más arriba y nos queda:

Sn=2*(n-1)*n*2n-3+n*2n-1=(n2-n)* 2n-2+2*n*2n-2=(n2-n+2n)* 2n-2=n(n+1)2n-2  lo que completa la demostración.

Otra demostración

La suma T=1+2+3+4+…+n equivale al número triangular n(n+1)/2. Esta suma se repite en S(n) varias veces. Por ejemplo, la suma de todos los elementos unitarios es T. También vale T la suma de elementos del conjunto total. Veamos los demás conjuntos:

Clasifiquemos los subconjuntos por su número de elementos.  El número de los que tienen r elementos es Cn,r. Por razones de simetría, los elementos 1,2,3,…n se repiten en total, para un mismo r, igual número de veces, luego la suma de los elementos de estos subconjuntos es múltiplo de T.

Cada elemento se repite en los conjuntos de r elementos tantas veces como indique Cn-1,r-1, luego la suma de todos equivaldrá a Cn-1,r-1*T. Si sumamos todos nos dará:

T*Cn-1,0+T* Cn-1,1+ T* Cn-1,2+ T* Cn-1,3+…+ T* Cn-1,n-1 = T*2n-1 = n(n+1)/2*2n-1 = n(n+1)*2n-2 , que es la fórmula propuesta.

¿Se te escapó algún detalle? Repasa, repasa…

Quienes acostumbráis a visitar OEIS habréis descubierto que estas sumas forman la secuencia http://oeis.org/A001788.  Si la estudiáis  podréis descubrir la gran cantidad de interpretaciones que tiene.

lunes, 23 de enero de 2012

La hoja resuelve problemas de Combinatoria

(Con esta entrada participamos en el Carnaval de Matemáticas 2.X, organizado en esta ocasión por Resistencia Numantina)


Combimaq 2

Sí, eso es posible, dentro de ciertas condiciones. Para ello creamos hace años el programa Combimaq y ahora presentamos su versión 2 para hojas de cálculo. La idea de este programa es resaltar que muchos planteamientos de problemas combinatorios en las enseñanzas medias se pueden reducir al análisis de unas pocas condiciones. Por ejemplo, estudiemos este problema de probabilidades:

Tiramos un dado tres veces consecutivas. ¿Qué probabilidad tiene el suceso de obtener al menos un 6, pero no en primer lugar?

Hemos comenzado con un problema de cierta dificultad para estas edades. Pues bien, para Combimaq 2, el planteamiento se reduce a estas condiciones:


Las cuatro primeras son fáciles de interpretar: Un dado tiene 6 caras, se tira 3 veces ordenadamente y como es un dado, los resultados se pueden repetir (lo de CUENTA lo dejamos por ahora).

Las siguientes comienzan con FAV, luego podemos sospechar que marcan las condiciones favorables para la probabilidad. En efecto, la primera exige que aparezca el 6 y la segunda, algo complicada, que no lo haga en primer lugar. Si descargas la hoja desde Hojamat (versiones Excel y OpenOffice)

http://hojamat.es/sindecimales/combinatoria/herramientas/herrcomb.htm

observarás que puedes escribir esas condiciones en su rango correspondiente y después pulsar sobre el botón “Máquina”. Obtendrás 216 casos posibles (6*6*6) y 55 favorables (6^3-5^3-6^2 ¿por qué?) y una probabilidad de 0,2546.



Hemos comenzado con un problema no trivial para mostrar la potencia de cálculo de la “máquina de combinar”, pero si descargas el Manual de uso

http://hojamat.es/sindecimales/combinatoria/herramientas/Combimaq%202.pdf

Podrás seguir paso a paso la forma de usar la hoja, la sintaxis de las condiciones y numerosos ejemplos de uso. Más adelante publicaremos colecciones de problemas clasificados por dificultad.

No es este el sitio para desarrollar el funcionamiento de la herramienta que proponemos. Por eso sólo resolveremos tres problemas para mostrar las distintas formas de plantear:

¿Cuántos subconjuntos tres elementos extraídos de {A, B, C, D, E, F, G} no contienen la letra B pero sí la A?

El planteo sería


El conjunto tiene 7 elementos y los subconjuntos 3. En los conjuntos no se tiene en cuenta el orden ni se repiten elementos. En las condiciones favorables hemos exigido que aparezca A pero no B. Por último, se ha concretado que lo que se combinan son letras y que sólo deseamos que se vean los casos favorables.

Resultado de todo ese planteamiento es la visión de todos los subconjuntos pedidos, que son 10, porque coinciden con C5,2


Tiramos al azar diez monedas sobre una mesa. ¿Qué probabilidad existe de que resulten exactamente cinco caras y cinco cruces?


En total son dos elementos, CARA y CRUZ, que se toman 10 veces con orden y repetición. Se declara CARA-CRUZ para que aparezcan los símbolos O y +. En los favorables se exige que la cuenta del primer símbolo sea 5 y por último se elige ver sólo los favorables.

El resultado sería


1024 proviene de 2^10, variaciones con repetición. 252 equivale a las formas de ordenar cinco caras y cinco cruces: 10!/(5!*5!)=252. Así, en contra de la impresión que tienen muchas personas, es una probabilidad más bien pequeña.

Ordenamos de todas las formas posibles las letras de la palabra BARBARA. ¿Cuántas de ellas comienzan y terminan con A?

Este el típico caso de permutaciones con repetición. En estos casos hay que aportar información sobre los símbolos que se combinan y el número de veces que se ha de repetir cada uno, que es lo que llamaremos CUENTA. Hay dos rangos en la hoja en os que se puede escribir esto, y después acudir a la orden de SIMBOLOS para que los lea Combimaq. En nuestro ejemplo sería así:



El resto de la programación de este experimento sería dar como números total y parcial el 7, por ser permutaciones, exigir orden, repetición y cuenta y, por último, la condición para favorables. Quedaría:


Obtendríamos este resultado:


El 210 proviene de 7!/(2!2!3!)=210 y si exigimos que primero y último sean ambos el símbolo A, nos quedaría 5!/(2!2!)=30, luego la máquina ha trabajado bien.

El listado de favorables obtenido es:



Esto es sólo una presentación. Para verlo con más detalle puedes descargar la Guía desde la dirección indicada arriba.

sábado, 21 de enero de 2012

Alfabeto Braille

Ideas para un estudio en clase:

Es difícil motivar los temas de Combinatoria en clase, salvo los de conteos triviales. Los ejemplos usados no siempre son cercanos a la realidad de nuestros alumnos. El estudio del alfabeto Braille puede servir para lograr esa motivación si se le da un enfoque lo más interdisciplinar posible. Enunciamos a continuación algunas ideas aisladas sobre objetivos que se pueden lograr con este alfabeto. Se recomienda el trabajo por grupos.

(1) Búsquedas en Internet:

* Qué es el alfabeto Braille. Cómo se lee:

Tras una breve introducción se inicia una búsqueda libre en Internet con la obligación de recopilar información. Es imprescindible obtener una imagen o varias con letras y números:







Esas imágenes se deben almacenar e imprimir para su posterior estudio.

* Escribir un resumen histórico del alfabeto en no más de 15 ó 20 líneas: 

Con el material almacenado, y pata evitar el uso de un simple copiar y pegar, se exigirá un resumen escrito del nacimiento y utilidad del alfabeto, de no más de 20 líneas. Si algún equipo lo desea puede ampliar el texto con otro documento complementario.

* Completar las búsquedas en la Red

Con otras en el entorno más próximo, como las teclas de los ascensores, una visita a la delegación de la Organización Nacional de Ciegos o cualquier otra cercana al alumnado.

* Sería conveniente que alguna frase de los documentos producidos se escribiera en Braille

(2) Para repasar Combinatoria: 

* Conteo en la celda básica de 2 por 3.

Por los procedimientos que cada grupo elija, se debe llegar al total de 2^6=64 símbolos posibles. Si se ve conveniente, se puede interpretar el resultado como total de conjuntos, o variaciones de (0,1) o combinaciones de seis casillas tomadas de uno en uno, de dos en dos,…

* Repaso del producto cartesiano: 

Investigación de los prefijos, Número total de símbolos usando prefijos: 64*64=4096. Estudio especial de los números del 0 al 9. ¿Siguen alguna pauta de orden? Investigar.

(3) Para trabajar con Hoja de Cálculo: 

Se puede confeccionar un traductor de símbolos Braille a letras. Para no complicar el trabajo se puede restringir el estudio a la célula básica sin prefijos. Se podría dividir el diseño en tres etapas:

(a) Traducir el esquema de seis puntos a un número binario

En la imagen se ha preparado, ajustando altura y anchura de las celdas, la célula básica del alfabeto en el rango B2:C4. Como punto se ha usado la letra “o”, pero puede servir cualquier otro.


La traducción a binario se consigue con la función SI. Copiamos a continuación la fórmula implementada en E2, que se ha extendido después al rango E2:F4:

=SI(B2="o";1;0)

Por último, se han asignado los valores 32, 16, 8, 4, 2 y 1 a cada una de las seis celdas. En el ejemplo se ha seguido el orden E2, F2, E3, F3, E4 y F4, para llegar a la fórmula

=E2*32+F2*16+E3*8+F3*4+E4*2+F4

Con ella conseguimos la traducción del símbolo Braille a un código comprendido entre 0 y 63 (64 posibilidades)

(b) Traducir el binario a símbolo Braille

Esta es la parte más pesada del trabajo, y por eso se aconseja el trabajo en equipo. Ahora, para cada letra se generará el código numérico correspondiente y se confeccionará una tabla de traducción. Mientras unos escriben los símbolos Braille en el primer rango otros toman nota del código generado y unos terceros van confeccionando la tabla traductora. Si se ve que falta tiempo, se pueden considerar sólo las diez o quince primeras letras.

Se pueden organizar en una tabla de dos columnas. Por dar comodidad al resto del diseño, situaremos a la izquierda el código y a su derecha la letra correspondiente:

32    a
40    b
48    c
52    d
36    e
56    f
60    g

(c) Traducción de código numérico a símbolo

Una vez confeccionada la tabla, que la suponemos situada en el rango B8:C24, por ejemplo, bastaría con usar la función BUSCARV para que consiguiéramos la escritura del símbolo a la derecha del código en la celda K4:

=BUSCARV(H4;B8:C14;2)

En la imagen puedes ver completa la traducción de la letra c:



(4) Trabajos complementarios

Para atender a la diversidad y al trabajo voluntario individual, se pueden proponer también:

* Traductor para números
* Estudio e interpretación de los prefijos
* Búsqueda de información sobre el Braille Unicode
* Concurso de microrelatos en Braille.
* Cualquier otro trabajo propuesto por el alumnado

lunes, 16 de enero de 2012

La Grecia clásica

Este blog va de números y hoja de cálculo, pero a veces es un imperativo tratar temas de más amplitud cultural. En estos tiempos de predominio del poder del dinero y de la adoración de los juguetes electrónicos se echa de menos el estudio reposado de nuestra cultura clásica.

Nuestro colaborador Rafael Parra Machío, preocupado, según sus palabras, por el deterioro de la actual comunidad griega y el olvido de lo que fue su civilización, ha rescatado un estudio suyo sobre la historia de la Civilización Griega.

Deseamos ofrecerlo en estos primeros días del año como un recordatorio de la necesidad de la vuelta a las fuentes en estos tiempos de desconcierto.

Lo podéis descargar en esta dirección

http://hojamat.es/parra/grecia.pdf

miércoles, 4 de enero de 2012

Números de Aquiles (1)

Un número natural se llama poderoso cuando todos los exponentes de sus factores primos son mayores o iguales a 2. Expresado de otra manera: si N es poderoso y un número p primo divide a N, entonces p2 también divide a N.

Esta definición tiene una consecuencia muy curiosa: todos los números poderosos se pueden expresar así: N=a2b3 con a y b naturales. ¿Te atreves a demostrarlo? Antes de que te pongas a ello, recuerda que no hemos dicho que a y b tengan que ser primos.

Los números de Aquiles son números poderosos que no pueden representarse como potencias perfectas, es decir, no equivalen a m^n con m y n naturales. Esto significa que el máximo común divisor de los exponentes ha de ser 1. En efecto, si en la descomposición de un número los exponentes tuvieran un factor común se podría efectuar la siguiente transformación:
Esto convertiría N en una potencia, en contra de lo supuesto.

Por ejemplo, el número 2700 es de Aquiles, porque equivale a 22*52*33. El m.c.d de los exponentes es 1. Son coprimos, aunque no dos a dos.

La descomposición N=a2b3 que vimos más arriba exige que en el caso de los números de Aquiles ni a ni b sean iguales a la unidad.

Los primeros números de Aquiles son

72, 108, 200, 288, 392, 432, 500, 648, 675, 800, 864, 968, 972, 1125, 1152, 1323, 1352, 1372, 1568, 1800,… (http://oeis.org/A052486)

Se han descubierto interesantes propiedades de estos números. Por ejemplo:

* 3087 y 7803 son ambos de Aquiles y sus cifras ordenadas en orden inverso

* Los números de Aquiles consecutivos más pequeños son

5425069447 = 73 × 412 × 972
5425069448 = 23 × 260412

* Hay números de Aquiles “fuertes”, en los que ellos son de Aquiles y su indicatriz de Euler también.

Son estos:

500, 864, 1944, 2000, 2592, 3456, 5000, 10125, 10368, 12348, 12500, 16875, 19652, 19773,...(https://oeis.org/A194085)

Ya los tienes presentados. Dentro de unos días daremos unas vueltecitas a estos números