martes, 26 de marzo de 2024

Números que no son

En esta entrada recorreremos algunos números que no cumplen alguna propiedad especial. No nos detendremos en los obvios, como que los impares no son múltiplos de 2 o que los compuestos son los que no son primos. Como el tema es muy amplio, elegiremos algunos casos interesantes sin extendernos demasiado.

Un ejemplo es la sucesión que publicamos hace tiempo, sobre números impares que no pueden ser suma de un primo y un par de primos gemelos:

https://oeis.org/A329590

Odd numbers k that cannot be expressed as k = p+q+r, with p prime and (q, r) a pair of twin primes.

1, 3, 5, 7, 9, 33, 57, 93, 99, 129, 141, 153, 177, 183, 195, 213, 225, 243, 255, 261, 267, 273, 297, 309, 327, 333, 351, 369, 393, 411, 423, 435, 453, 477, 489, 501, 513, 519, 525, 537, 561, 573, 591, 597, 603, 633, 645, 657, 663, 675, 687, 693, 705, 711, 723

Puedes estudiar ejemplos y programación para esta sucesión contenidos en esa dirección.

Este es el tipo de “negaciones” de tipo medio que presentamos aquí como ejemplo.

Otro ejemplo de publicación nuestra reciente es el de los números que no pueden ser sumas de divisores de otros (función SIGMA). Copiamos un código PARI que los encuentra:

mfun(n)={my(k=1,a=0,vale=0,f);while(vale==0&&k<n,f=sigma(k);if(f==n,vale=1;a=k);k+=1);a}
for(i=2,40,if(mfun(i)==0,print1(i,", ")))

Resultado: 2, 5, 9, 10, 11, 16, 17, 19, 21, 22, 23, 25, 26, 27, 29, 33, 34, 35, 37,…

Coincide con lo publicado en https://oeis.org/A007369

Cuestión dependiente de otro número

Lo que hemos efectuado sobre la función SIGMA es un caso de una negativa para un número N en una función que depende de otro K.

Es fácil, mediante un procedimiento similar al que usamos en otras cuestiones, encontrar números que no son el resultado de una función, en este caso SIGMA. Podemos algo así:

Function noes(n) as boolean
Dim k, f, cota
Dim vale As Boolean

'En esta línea concretamos la cota
cota = n
k = 1
vale = False ‘Suponemos que no se cumple lo pedido
While Not vale And k <= cota ‘Buscamos soluciones
'En esta línea concretamos la función
f = sigma(k)
If f = n Then vale = True ‘Si vale=True se detiene la búsqueda
k = k + 1
Wend
noes = Not vale Buscamos que el número no valga
End Function

Con esta función hemos repetido la búsqueda, obteniendo el mismo resultado:



Esta función nos servirá para otras cuestiones, con solo cambiar la línea f=sigma(k) por otra función, y cambiar la cota si es necesario.

Otro ejemplo clásico es el siguiente

Autonúmeros o números colombianos

Son aquellos que no pueden ser iguales a otro número sumado con sus cifras.

Puedes consultar nuestras publicaciones  https://hojaynumeros.blogspot.com/2015/03/autonumeros-1.html y la siguiente.

En este caso bastará escribir la línea f=k+sumacifras(k). La función sumacifras está explicada en la dirección anterior. Con esto confirmamos cuáles son los primeros autonúmeros:

Están publicados en https://oeis.org/A003052.

Con la función PHI de Euler

Otro caso interesante es el de aquellos números que no pueden ser función PHI de otros, es decir, que PHI(X)=N no tiene solución. Recordamos que PHI cuenta los números menores que X y que son primos con él, incluido el 1. Es evidente que X no será menor que N, lo que puede complicarnos la cota de búsqueda. En estos casos elegiremos cotas altas y estudiaremos los casos particulares. En este ejemplo usaremos cota 10^3 para los primeros números, y nuestra función euler(k), que devuelve el valor de PHI. Procederemos a escribirla en la línea correspondiente del código de la función.

Obtenemos:



Wikipedia en español les llama nototientes, traducción literal del inglés. Están publicados en https://oeis.org/A007617, y ahí puedes descubrir algunas de sus propiedades.

En PARI ya está implementada la función istotient, para números que pueden ser función de Euler de otros. Esto facilita la búsqueda. Por ejemplo, así:

 

En el listado figuran todos los números impares mayores que 1. La razón es que PHI(pm) es par para p primo, pues aplicando la fórmula

PHI(pm)=pm(1-1/p)=pm-1(p-1), y como el paréntesis es par, lo será todo el producto. Al ser multiplicativa, la función PHI seguirá siendo par para cualquier número.

Se pueden encontrar fácilmente los números pares que no son PHI(K) para ningún valor de K. Usaremos PARI:

 


Números no poligonales

Aquí nos referimos a los poligonales no triviales, es decir, que en cada lado figuren dos unidades al menos, porque con una unidad todos los números pueden ser poligonales, como vemos en la imagen, que representa al número 9:

Para estudiar si un número es poligonal no trivial no vale su fórmula general:

Se puede conocer si un número es poligonal o no, porque existe un criterio algebraico. Puedes verlo en mi publicación “Números poligonales” descargable desde http://www.hojamat.es/publicaciones/poligonales.pdf)

 

Con este criterio es fácil construir la función ESPOLIGONAL

Function espoligonal(n, k)
Dim d, e, m

m = 0
d = (k - 4) ^ 2 + 8 * n * (k - 2)
If escuad(d) Then ‘Criterio
m = (k - 4 + Sqr(d)) / 2 / (k - 2)
If esentero(m) Then e = m Else e = 0 ‘Ha de ser entero
End If
espoligonal = e
End Function

Devuelve un cero si no es poligonal, y su número de lados si lo es. Esta función tiene un parámetro k (número de lados), pero con un bucle podemos prescindir de él:

Function esunpoligonal(n) 'detecta poligonales regulares, desechando el caso n, trivial
Dim i, es

If n < 3 Then esunpoligonal = 0: Exit Function
es = 0
i = 3
While i < n And es = 0
If espoligonal(n, i) Then es = i
i = i + 1
Wend
esunpoligonal = es
End Function

Si aplicamos esta función a cualquier número y nos devuelve cero, es porque ese número no puede ser poligonal, salvo el caso trivial. De esta forma podemos encontrar los primeros números no poligonales:

1, 2, 3, 4, 5, 7, 8, 11, 13, 14, 17, 19, 20, 23, 26, 29, 31, 32, 37, 38, 41, 43, 44, 47, 50, 53, 56, 59, 61, 62, 67, 68, 71, 73, 74, 77, 79, 80, 83, 86, 89, 97, 98, 101, 103, 104, 107, 109, 110, 113, 116, 119, 122, 127, 128, 131, 134, 137, 139, 140, 143, 146, 149, 151, 152, 157,

Están publicados en https://oeis.org/A090467

Con estos ejemplos podemos entender que basta someter al número a una prueba concreta mediante una función y detectar, si la variable de respuesta es de tipo booleano, si el resultado es FALSO.

Existen muchos más ejemplos de números que “NO SON”. Incluimos otro ejemplo:

No son sumas de cuadrado y primo

Función:

Public Function primomascuad(n) As Boolean 'descompone un número en primo más cuadrado
Dim r, i, p
Dim vale As Boolean

vale = False
r = Sqr(n)
i = 1
While i <= r And Not vale
p = n - i ^ 2
If esprimo(p) Then vale = True
i = i + 1
Wend
primomascuad = vale
End Function

Los primeros números que no cumplen la condición son:

1, 2, 5, 10, 13, 25, 31, 34, 37, 58, 61, 64, 85, 91, 121, 127, 130, 169, 196, 214, 226, 289, 324, 370, 379, 400,…

https://oeis.org/A064233

No seguimos. La lista de ejemplos similares llenaría un libro.

lunes, 18 de marzo de 2024

Potencias equidistantes de cuadrados

En uno de mis cálculos habituales me encontré hace unas semanas con esta igualdad doble:

16124=307^2-5^7
16124=5^7-249^2

Lo interesante de ella es que significa que 5^7 equidista de dos cuadrados, 249^2 y 307^2. Por eso, la función que usaremos más adelante la hemos llamado ENTREDOS, porque investigaremos qué potencias son promedio de dos cuadrados, o, lo que es equivalente, equidistantes de ellos.

Búsqueda ordenada

Para una potencia dada, deberemos recorrer todos los cuadrados inferiores a ella, sumar a la potencia la diferencia entre los dos números, y averiguar si resulta un cuadrado. Por ejemplo, 3125=5^5. Le extraemos la raíz cuadrada entera, y resulta 55. A partir de ese número k, vamos descendiendo valores, elevándolos al cuadrado. Para cada cuadrado k2, encontramos la diferencia D=3125-k2. Esa diferencia la sumamos a 3125, y deberá resultar un cuadrado entero.

 El esquema podría ser el siguiente: 


Vamos descendiendo valores hasta que la suma sea cuadrada. En la imagen observamos que unas soluciones son 45 y 65. En efecto:

3125-452=1100 y 652-3125=1100, luego 5^5 equidista de 452 y 652.

Este proceso es fácilmente automatizable. Lo hemos efectuado en esta función:

Function entredos$(n)
Dim i, r, a, b
Dim s$

s = "" ‘La solución se expresa como texto
If espotencia(n) > 1 Then ‘Es potencia no trivial
r = Int(Sqr(n)) ‘Primer valor a ensayar
i = r - 1
While i > 0 And s = "" ‘Descendemos valores de cuadrados
b = n - i ^ 2 ‘Diferencia entre potencia y cuadrado
a = n + b ‘A la potencia le sumamos la diferencia
If escuad(a) Then b = Sqr(a): s = s + "  " + Str$(i) + " , " + Str$(b)
‘Hemos encontrado una solución
i = i - 1
Wend
End If
entredos = s ‘Si no hay solución, la respuesta está vacía
End Function

La función ESPOTENCIA la hemos publicado en https://hojaynumeros.blogspot.com/2022/04/numeros-consecutivos-con-una-suma-del.html

Estas son las primeras soluciones con potencias no triviales:

Es fácil comprobar cualquiera de ellos, por ejemplo, 125=5^3, potencia no trivial, y se cumple que 125=(92+132)/2.

Para poder manejar con comodidad potencias y exponentes grandes, hemos preparado la versión en PARI.

entredos(n)={my(r=truncate(sqrt(n)),i=r-1,a,b,v=0,w=0);if(ispower(n),while(i>0&&v==0&&w==0,b=n-i^2;a=n+b;if(issquare(a),v=i;w=truncate(sqrt(a)));i=i-1));concat(v,w)}
for(i=1,1400,if(entredos(i)<>[0,0],print(i,", ",ispower(i),", ",entredos(i))))

En ella se busca hasta 1400 para que coincida el resultado con la tabla anterior:


Estudio teórico

Las potencias de la tabla no aparecen por casualidad, sino que han de tener una estructura muy determinada. Es especialmente interesante su estudio porque en un principio hemos ignorado las soluciones múltiples para el par de cuadrados, y veremos que se pueden tener previstas si se conoce la descomposición factorial de esas potencias.

Para entender mejor qué suponen estas búsquedas, basta enfocar al doble de esas potencias, porque así el problema es muy tratable. En efecto, si pk es el promedio entre dos cuadrados, a2 y b2, significa que 2pk ha de poderse descomponer en suma de dos cuadrados, y ese problema está resuelto desde Fermat y Gauss. Nos basaremos para nuestro estudio en la fórmula propuesta por Gauss para contar las descomposiciones posibles de un número en dos cuadrados.

Conviene leer nuestra entrada de blog https://hojaynumeros.blogspot.com/2010/10/en-cuantas-sumas-de-cuadrados-2-de-5.html

En ella se comenta la fórmula de Gauss para averiguar en cuántas sumas de cuadrados se puede descomponer un número. Copiamos un párrafo de esa entrada:

“Estas propiedades se resumen en un criterio que no vamos a desarrollar aquí, y es que sólo se pueden descomponer en cuadrados los números en los que los factores primos del tipo 4n+3 figuren en su descomposición con exponente par. Gauss fue más allá en esa sección 182, pues dio una fórmula para contar el número de formas diferentes en las que se descompone un número en suma de dos cuadrados con base no negativa:

donde ES significa “mínimo entero igual o superior” y los factores que le siguen se corresponden con los exponentes de los factores del tipo 4n+1 aumentados en una unidad. La fórmula, como advierte Gauss, sólo es válida si los factores del tipo 4n+3 forman un cuadrado perfecto.”

En este caso, el factor 2 de 2pk no influye, por lo que el criterio se puede aplicar a la potencia que equidista de dos cuadrados. En efecto, si descomponemos factorialmente esas potencias, obtenemos:

Todas las soluciones poseen factores primos que son, o bien del tipo 4k+1, o el 2, o el tipo 4k+3 elevado a una potencia par, como ocurre en el 900, que hemos destacado en rojo.

Esto nos da un criterio fiable para saber si una potencia no trivial puede equidistar de dos cuadrados.

Vemos un ejemplo:

1368900=170^2, y sus factores primos son 13^2*5^2*3^4*2^2. De ellos, el 3, que es del tipo 4k+3, está elevado a exponente par, los otros, 13 y 5 son del tipo 4k+1, y, finalmente, el 2 no influye. Por eso se sabía con antelación que sería equidistante de dos cuadrados, en este caso son 715716=846^2 y 2022084=1422^2, con la identidad 1368900=(846^2+1422^2)/2.

Soluciones múltiples

Hay que considerar la posibilidad de que una potencia equidiste de más de un par de cuadrados. De hecho, veremos que se dan soluciones múltiples con total seguridad. Para estudiarlas, hemos modificado algo la función ENTREDOS para que nos devuelva, en primer lugar, el número de soluciones. De esa forma, la búsqueda de potencias equidistantes se puede efectuar fijando el número de pares de cuadrados esperados. Hemos organizado una búsqueda para tres pares de soluciones como ejemplo:

Es fácil observar que se cumple la fórmula de Gauss, de emplear la mitad por exceso de los exponentes de los primos tipo 4k+1. En los cuatro ejemplos figura (ha sido algo casual) el factor 5 elevado a 5 o a 6, y no existen factores tipo 4k+3. Tomando la parte entera por exceso de tanto el exponente 5 como del 6 resulta 3, que es el número de pares de cuadrados que hemos conseguido.

Con este criterio seremos capaces de saber el número de pares de cuadrados resultantes sin tener que comprobarlo. Vemos unos ejemplos:

3084588=2^2*3^3*13^4: No debe presentar soluciones, por contener el 3 elevado a potencia impar. En efecto, la función ENTREDOS devuelve un cero:

78125=5^7, luego debe presentar cuatro soluciones, ya que 4 es la mitad por exceso de 7:

Con hoja de cálculo se pueden producir errores de redondeo para números mayores, por lo que es más fiable el razonamiento que la comprobación.

Potencias sucesivas

Finalizamos con una curiosidad, y es que, dada una potencia equidistante de dos cuadrados, todas sus potencias presentarán soluciones, que se podrán ir incrementando al aumentar los exponentes de los factores tipo 4k+1. En la imagen podemos estudiar un ejemplo representativo, que recorre las potencias de 13:


El número de soluciones se va repitiendo, por depender de la mitad por exceso, que coincide en dos exponentes consecutivos.

lunes, 11 de marzo de 2024

Primos cubanos

Se llaman así (Cunningham (1923)) aquellos números primos que son iguales a una diferencia de cubos consecutivos. Lo de “cubano” viene de cubo, no de Cuba. No es un nombre afortunado, pero así quedó. Al ser los cubos consecutivos, se da por supuesto que X es entero.

No es que sean muy interesantes, pero nos permitirán analizar su búsqueda y estudiar variantes de la definición.

Búsqueda directa

Si creamos una columna de números consecutivos, los elevamos al cubo y restamos, si poseemos una función ESPRIMO o ISPRIME, será fácil identificar los primos cubanos. Esta función la puedes consultar en varias entradas de nuestro blog, como, por ejemplo en https://hojaynumeros.blogspot.com/2016/05/palprimos-primos-palindromicos.html

El esquema quedaría así:


En la última columna hemos escrito fórmulas del tipo =SI(ESPRIMO(I4);"Cubano";"")

Si es primo aparecerá la frase “Cubano” y si no, quedará en blanco.

Observamos que los primeros primos cubanos son 7, 19, 37, 61, 127, 271, 331, 397, 547, 631, 919, 1657.

Desarrollo algebraico

Al desarrollar la definición, nos damos cuenta de que el tema es de tipo elemental:

N=(x+1)3-x3=3x2+3x+1

Esto nos lleva a una ecuación de segundo grado:

3x2+3x-(N-1)=0

Para que tenga solución entera, el discriminante, que es fácil ver que equivale a 12N-3, ha de ser cuadrado. De esta forma tendremos el valor de x:

Con este breve estudio tenemos ya forma de encontrar y analizar los primos cubanos. Comenzamos con nuestro Buscador de Naturales (http://www.hojamat.es/sindecimales/divisibilidad/herramientas/herrdiv.htm#buscador)

Es interesante explicar las condiciones: En primer lugar exigimos que el número sea primo, después, que sea igual a una expresión cuadrática de coeficientes 3, 3 y 1 (3X2+3X+1), y, por último, encontramos el valor de X y lo situamos en la segunda columna con la orden EVALUAR.

En PARI es muy fácil también encontrar estos números. Nos basaremos en la condición de que 12N-3 sea cuadrada, y quedará:

is(n)=isprime(n)&&issquare(12*n-3)
For(i=1,1000,if(is(i) ,print1(i,”, “)))

Lo hemos comprobado en la web oficial de PARI, https://pari.math.u-bordeaux.fr/gp.html

Están publicados en https://oeis.org/A002407

A002407    Cuban primes: primes which are the difference of two consecutive cubes.

7, 19, 37, 61, 127, 271, 331, 397, 547, 631, 919, 1657, 1801, 1951, 2269, 2437, 2791, 3169, 3571, 4219, 4447, 5167, 5419, …

Carácter poligonal

La expresión N=3X2+3X+1 se puede escribir como 6(X(X+1)/2)+1=6Tx+1, es decir, como seis veces un número triangular ´más una unidad, pero esa es la estructura de los números hexagonales centrados. Basta estudiar esta imagen de la Wikipedia para entenderlo

(https://en.wikipedia.org/wiki/Centered_hexagonal_number#:~:text=The%20sequence%20of%20hexagonal%20numbers,%2C%20721%2C%20817%2C%20919. )

Si consultas el listado de estos números hexagonales centrados, observarás que nuestros primos cubanos están incluidos.

A003215              Hex (or centered hexagonal) numbers: 3*n*(n+1)+1 (crystal ball sequence for hexagonal lattice).

1, 7, 19, 37, 61, 91, 127, 169, 217, 271, 331, 397, 469, 547, 631, 721, 817, 919, 1027, 1141, 1261, 1387, 1519, 1657, 1801, 1951, 2107,…

La expresión N=3X(X+1)+1 también sugiere que equivalen a la unidad más tres veces un número oblongo, del tipo N(N+1). Así, 61 se puede representar como tres rectángulos apilados de dimensiones 4 por 5, más una unidad.

Por otra parte, el primer sumando,

Búsqueda directa del valor de X+1

Podemos dar protagonismo al valor de X+1, base del cubo mayor. En este caso bastaría exigir que fuera primo (X+1)3-X3. Es simple buscar esos valores. Cambiarían de columna en Excel respecto a la búsqueda anterior:


 Hemos llamado N a X+1. Lo hemos decidido así porque los valores de X+1 están publicados en https://oeis.org/A002504:

A002504              Numbers x such that 1 + 3*x*(x-1) is a ("cuban") prime (cf. A002407).

2, 3, 4, 5, 7, 10, 11, 12, 14, 15, 18, 24, 25, 26, 28, 29, 31, 33, 35, 38, 39, 42, 43, 46, 49, 50, 53, 56, 59, 63, 64,…

Se podría pensar en generalizar esta cuestión planteando que la diferencia entre las bases sea un número k mayor que 1, pero en ese caso la diferencia entre cubos sería múltiplo de k y no podría ser primo. Así que la única diferencia entre cubos que puede ser prima es la que existe entre consecutivos.

lunes, 4 de marzo de 2024

Números del tipo N(N+2)

Los números del tipo N(N+2), como 3*5, 4*6 o 8*10, no presentan propiedades trascendentes, ni han aparecido mucho en las cuestiones de Teoría de Números, pero los vamos a elegir como ejemplo de cómo emprender una descripción lo más completa posible de un tipo de números mediante las herramientas que usamos en este blog, en especial de las hojas de cálculo.

Descripción

El primer sentido de estos números es el de aquellos que se pueden representar como un rectángulo con la base dos unidades mayor que la altura. Esto no nos lleva a muchas cuestiones interesantes, por lo que nos limitaremos a nombrarlos como “oblongos_2”.La imagen nos representa el número 35=5*7:

Nos da mucha más información el hecho de que N(N+2)=(N+1)2-1, es decir, números que equivalen a un cuadrado menos una unidad (ya hemos estudiado en este blog los que son un cuadrado más una unidad, en https://hojaynumeros.blogspot.com/2022/10/regresos-5-un-cuadrado-y-una-unidad-1.html)

Si en el ejemplo anterior, de 5*7=35, lo convertimos en 36-1=(6-1)(6+1)=62-1 obtendremos otra perspectiva de estos números. Lo comprobamos en la imagen, en la que una fila de unidades se ha movido para representar mejor esta equivalencia:


Suma de impares consecutivos

En una entrada reciente hemos estudiado la posibilidad de representar un número como suma de enteros impares consecutivos si equivale a una diferencia de cuadrados, como sería nuestro caso, N(N+2)=(N+1)2-12.

Según las técnicas que estudiamos en ella, 35 debería ser equivalente a 3+5+7+9+11, y esta propiedad la compartirán todos los de este tipo, que serán equivalentes a una suma de impares consecutivos entre 3 y 2N+1.

La siguiente imagen lo explica mejor. Cada impar sería el gnomon (figura en ángulo) destacado en colores alternos: 3+5+7+9+11.


Listado de estos números

El contar con una fórmula y un desarrollo en sumas facilita la búsqueda de estos números, que se hace trivial. No obstante, repasaremos algunas herramientas:

Con el Buscador de Naturales

En estos casos es muy intuitivo nuestro Buscador (http://www.hojamat.es/sindecimales/aritmetica/herramientas/herrarit.htm#buscador)

En la siguiente captura de imagen observamos que la única condición es que N+1 sea un cuadrado:


Con esa condición obtenemos un primer listado de los números tipo N(N+2), lo que no es ninguna proeza. También podemos acumular impares. La primera condición es NO PAR, y en la segunda solicitamos evaluar las sumas parciales:



Volvemos a obtener la misma sucesión. Por último, exigimos que su fórmula sea N2+2N+0, con la condición de que sea una fórmula cuadrática de coeficientes 1, 2 y 0.


Las tres técnicas coinciden pues en el listado 3, 8, 15, 24, 35, 48, 63, 80, 99, 120, 143, 168, 195,…que está publicado en https://oeis.org/A005563

A005563              a(n) = n*(n+2) = (n+1)^2 - 1.

0, 3, 8, 15, 24, 35, 48, 63, 80, 99, 120, 143, 168, 195, 224, 255, 288, 323, 360, 399, 440, 483, 528, 575, 624, 675, 728, 783, 840, 899, 960, 1023, 1088, 1155, 1224, 1295, 1368, 1443, 1520, 1599, 1680, 1763, 1848, 1935, 2024, 2115, 2208, 2303, 2400, 2499,

Funciones en VBasic

Los factores de N(N+2) no han de ser primos, por lo que para saber si un número es del tipo “oblongo_2” no es de mucha utilidad el descomponer en factores primos. Es preferible exigir que su consecutivo sea cuadrado. Podemos usar esta:

Function oblongo2(n) As Boolean
If escuad(n + 1) Then oblongo2 = True Else oblongo2 = False
End Function

Con ella podemos buscar ejemplos para números mayores. En la imagen hemos descompuesto los primeros oblongos_2 a partir de 100000:


Recurrencias

Los números expresados con polinomios de segundo grado suelen presentar múltiples recurrencias.

Recurrencia con el anterior

La primera recurrencia que se nos ocurre es la derivada de que sean sumas de impares consecutivos, luego seguimos a Vincenzo Librandi en OEIS:

a(n) = a(n-1) + 2*n+1

Es tan sencilla de interpretar que la dejamos así.

Recurrencia con dos términos

Es fácil probar que a(n)=2a(n-1)-a(n-2)+2

Aplicamos definiciones:

2a(n-1)-a(n-2)+2=2(n-1)(n+1)-(n-2)*n+2=2n2-2-n2+2n+2=n2+2n=n(n+2), luego equivale a a(n).

Es fácil su comprobación:

15=2*8-3+2, 24=2*15-8+2, 35=2*24-15+2,…

Recurrencia con tres términos

A(n+2)=3a(n+1)-3a(n)+a(n-1)

Tiene la ventaja de que es homogénea, sin término independiente, y aparece a menudo en cuestiones de números figurados.

En lugar de demostrarla algebraicamente, hemos acudido a nuestra herramienta ecurrecurre (http://www.hojamat.es/blog/ecurrecurre.xlsm)

Tiene fallos en su funcionamiento, por lo que no se ofrece como herramienta general en Hojamat.es.

Con ella se obtienen los coeficientes 3, -3 y 1 que figuran en la fórmula de recurrencia:

Esta recurrencia la podemos comprobar con nuestra herramienta recurre_lineal:

(http://www.hojamat.es/sindecimales/aritmetica/herramientas/herrarit.htm#recurre2)

Elegimos recurrencias de tercer orden y escribimos coeficientes y términos iniciales:

 


A la izquierda aparecerán los primeros términos:


Suma de términos del tipo n(n+2)

Es fácil encontrar una fórmula para la suma de los primeros números de este tipo. Basta expresar los como n2+2n y aplicar las fórmulas de las sumas de cuadrados y las de enteros:

Simplificando:

Hemos aplicado esta fórmula a los primeros valores de n, con el resultado:


En la primera columna se ha aplicado la fórmula de la suma que acabamos de obtener, y en la segunda, mediante diferencias, se ha vuelto a la sucesión primitiva, de n(n+2)

Estas sumas. 3, 11, 26, 50, 85, 133, 196, 276, 375, 495,…están publicadas en https://oeis.org/A051925, donde se explican otros orígenes interesantes de esta sucesión

Con el Buscador es fácil obtenerlos:


Ya conocemos las dos condiciones usadas. En la primera columna figuran los números oblongos_2 y en la segunda sus sumas.


Subtipos de estos números

Cuando estudiamos algunos tipos de números en este blog, solemos buscar subtipos, pues a veces se encuentran propiedades o relaciones no buscadas.

Cuadrados

Estos números no pueden ser cuadrados, pues no existen cuadrados consecutivos salvo 0 y 1.

Triangulares

Sí existen términos triangulares, como el 3. Son aquellos triangulares cuyo consecutivo es un cuadrado, como también cumple el 15. Estas condiciones son adecuadas para usar el Buscador:


Las soluciones 3, 15, 120, 528, 4095,…están publicadas en https://oeis.org/A006454

Semiprimos

Para que n(n+2) sea semiprimo, la única solución es que tanto n como n+2 sean primos, es decir, gemelos. A la inversa, todos los productos de primos gemelos serán, evidentemente, de este tipo.

En esta búsqueda los semiprimos figuran en la segunda columna. Es fácil entender las condiciones impuestas:



Cubos

Desde hace tiempo se conoce que el único cubo seguido de un cuadrado es el 8.

Capicúas

Es una cuestión menor, pero es interesante que los lectores demuestren la causa de que 99, 9999, 999999,…figuren en el listado:

3, 8, 99, 323, 575, 4224, 5775, 9999, 36863, 42024,…

Números de Fibonacci

Sólo hemos encontrado las soluciones 3 y 8.

Aquí paramos los subtipos.

Hemos efectuado un recorrido sobre los números del tipo n(n+2) con las herramientas usuales de este blog. Es un tipo de estudio ameno, pero sin gran trascendencia.

jueves, 22 de febrero de 2024

Números generados por sumas alternas

El contenido de esta entrada no tendrá valor teórico destacable. Su objetivo es analizar el procedimiento para encontrar sumas de números alternados que generen uno dado N. Por alternados entenderemos consecutivos de cierto tipo en los que se suprime uno de cada dos. También podríamos afirmar que “se salta” un elemento y se elige el siguiente.

Por ejemplo, 84=1+9+25+49, y esa suma es alternada de cuadrados, porque hemos elegido una suma de consecutivos y le hemos ido suprimiendo un término de cada dos. Los representamos entre paréntesis:

84=1+(4)+9+(16)+25+(36)+49

Otro ejemplo es el publicado en https://oeis.org/A300395, que contiene todos los números que se forman con una suma de nueve primos alternados. Por ejemplo:

521 = 23+31+41+47+59+67+73+83+97

En este conjunto se han ido suprimiendo los primos 29, 37, 43, 53,…

Queda claro, pues, lo que entenderemos por alternados.

Un número N puede ser equivalente a varias sumas de este tipo. Por eso, los algoritmos que busquen dichas sumas necesitarán dos bucles, pues primero hay que analizar el inicio de la suma y luego su longitud. Para cada inicio existirán varias posibles sumas, lo que exige los dos bucles. En este blog hemos usado la función PROXIMO en la entrada “En el punto medio de dispares” (https://hojaynumeros.blogspot.com/2023/06/en-el-punto-medio-de-dispares.html) para ir encontrando sumandos del tipo dado si conocemos el primero.

El siguiente listado es el usado para encontrar el próximo primo, ya que usa la función ESPRIMO, pero se adapta fácilmente al la búsqueda de otros tipos de números, usando las funciones ESTRIANGULAR, ESCUBO, ESOBLONGO,…todas usadas en este blog y accesibles con el comando Buscar.

Function proximo(a) As Long

Dim p, prim As Long
Dim sale As Boolean

p = a + 1: sale = False: prim = 0
While Not sale ‘Reitera hasta que aparezca el próximo
If escuad(p) Then prim = p: sale = True
p = p + 1
Wend
proximo = prim
End Function

La función PROXIMO puede resultar lenta, por lo que si buscamos una suma alternada para un número N, es muy conveniente guardar en un vector todos los números comprendidos entre 1 y N y que sean del tipo dado. También tiene el peligro de no parar nunca, pero en los casos habituales esto no sucede.

Estructura de un algoritmo

Según las consideraciones anteriores, para encontrar las sumas deseadas deberemos recorrer tres etapas:

1) Hay que encontrar todos los posibles sumandos del tipo dado entre 1 y N. Lo explicamos con un ejemplo, el de encontrar una suma de triangulares consecutivos alternados cuyo resultado sea 200.

En primer lugar, usando la función PROXIMO, creamos un vector que contenga todos los triangulares comprendidos entre 1 y 200. Si llamamos s al vector, tendríamos que s(1)=1, s(2)=3, s(3)=6, …s(18)=171 y s(19)=190. Tomamos nota de que existen 19 triangulares que pueden ser sumandos.

El uso de un vector nos facilita el “saltar” un elemento, pues se pasará de s(k) a s(k+2) en cada paso.

2) Se establece un bucle de búsqueda del primer sumando, que comenzará en el 1 y se avanzará hasta 190. En el ejemplo tendríamos que llegar, como veremos, hasta un inicio de 10.

3) Para cada posible inicio de la suma se construirá un segundo bucle que vaya añadiendo un sumando alternado en cada paso. Para ello se irá incrementado el índice en dos unidades cada vez. Si en uno de ellos se alcanza el resultado de N, se habrá conseguido el objetivo. Para el número 200 la solución sería

10+21+36+55+78=200. Habríamos saltado los triangulares 15, 28, 45, y 66.

Estas fases se pueden implementar en una subrutina para VBasic con objeto de usarla en Excel o Calc.

Rutina en VBasic

El listado que sigue ha sido diseñado para Excel, pero con un pequeño cambio se adapta a LibreOffice Calc.

fila = 14 ‘O cualquier otro valor
‘Se lee el valor de N y el tipo de sumando
n = ActiveWorkbook.Sheets(1).Cells(9, 4).Value
tipo = ActiveWorkbook.Sheets(1).Cells(29, 8).Value

‘Con el uso de la función PROXIMO se carga un vector con candidatos a sumandos, para acelerar el proceso

i = 0
k = 0
While a <= n
a = proximo(a, tipo)
If a <= n Then i = i + 1: s(i) = a: k = i
Wend

‘Se ha construido el vector s

For i = 1 To k ‘Bucle para elegir el inicio de la suma
j = i
a = s(i)
suma = a
st$ = Str$(a)
While suma <= n And j <= k – 2 ‘Bucle para construir una suma
j = j + 2 ‘Es importante añadir un 2, para alternar
a = s(j)

suma = suma + a ‘Se construye la suma
st$ = st$ + ", " + Str$(a) ‘Modo texto para la suma
If suma = n Then
st = st + " # " + Str$((j - i) / 2 + 1)

‘Se presenta la solución en modo texto

ActiveWorkbook.Sheets(1).Cells(fila, 10).Value = st$
ActiveWorkbook.Sheets(1).Cells(fila, 12).Value = rotulo(tipo)
End If
Wend
Next i
End Sub

En la imagen vemos la forma en la que aparecería la solución en Excel:

Se leerían los sumandos, el número de ellos, 5 en este caso, y el tipo, “Triangulares”. Lo del este último rótulo no lo hemos explicado aquí.

Este algoritmo se podría haber construido como una función, pero esta vez hemos optado por una rutina, pues usamos una similar en una de nuestras herramientas.

Uno de los últimos usos, por si deseas reproducirlo, es comprobar que el número 5623 equivale a la suma de nueve números primos alternados y que, por tanto, pertenece a la sucesión https://oeis.org/A300395

5623=577+593+601+613+619+641+647+659+673

Si se dispone de varios tipos de números (en mis trabajos uso 17), se podría construir una gran rutina que recorriera varios tipos para buscar sumas. En la siguiente imagen lo hemos aplicado al número 200 con un resultado sorprendente por el número de soluciones:


Entre ellos figura el que hemos usado de ejemplo con triangulares.

Con esta idea finalizamos la entrada, ya que el objetivo era diseñar y explicar un algoritmo.