jueves, 14 de mayo de 2026

Funciones definidas para tipos de números (1)

 Introducción

En algunos cálculos se desea poder usar funciones definidas del tipo PRIMO(N), PELL(N), que se puedan integrar en expresiones, como 2*PRIMO(6) o (FIBONACCI(7))^2. En ellas llamaremos orden al contenido del paréntesis. Así, PRIMO(7) poseería orden 7, que correspondería con el número de primos menores o iguales al dado.

 

El objetivo de esta entrada es la construcción de estas funciones en los casos más populares, así como las complementarias para encontrar el orden, según ellas, de un número dado. Así, por ejemplo, PRIMO(6)=13 y ORDENPRIMO(13)=6. Algunas de ellas se han usado en este blog, por lo que sólo se enlazarán cuando llegue su turno.

 

Veremos tres clases de situaciones:

 1) El tipo de número posee fórmula (se comprende que debe ser sencilla). Es el caso de TRIANGULAR(N)=N(N+1)/2. Entonces existirá un procedimiento algebraico no muy difícil.

 2) No existe fórmula alguna. Los números primos y los libres de cuadrados, por ejemplo, se encuentran por búsqueda. En ese caso será imprescindible un bucle respecto a una variable para encontrarlos. Se necesita un lenguaje de programación.

 3) Son elementos de una sucesión recurrente. Aunque suelen existir fórmulas para todos ellos, su complicación no los aconseja, y es más sencilla la programación en un lenguaje. Como caso particular se verán las sucesiones del tipo Horadam.

Existe otra posibilidad, y es que posean una función generatriz. Este procedimiento se ha usado mucho en este blog, pero no entra en el objetivo de esta entrada.

Dedicaremos tres entradas a esta cuestión

 

Funciones con fórmula

 

Muchas de ellas se han utilizado aquí ya. Las más importantes son las de números figurados, como TRIANGULAR(N), HEXAGONAL(N) O PIRAMIDAL(N,K). Elijo algunos ejemplos con cierto interés:

  

TRIANGULAR(N)

 

La fórmula directa, TRIANGULAR(N)=N*(N+1)/2, no necesita explicación, pero para hallar la de su orden hay que recordar que, dado un triangular cualquiera, T(N), la expresión 8T(N)+1 es un cuadrado. De ahí podemos sacar su orden. Una versión podría ser el siguiente:

 

Function ordentriang(n)

Dim a

a = Int((Sqr(8 * n + 1) - 1) / 2)

If a * (a + 1) = 2 * n Then ordentriang = a else ordentriang = 0

End Function

 

Una situación similar es la de la función OBLONGO(N)=N(N+1), sólo que aquí la propiedad básica es que cuatro veces un oblongo más la unidad es un cuadrado, así que sustituyendo en la función anterior un 8 por un 4 obtenemos la expresión de ORDENOBLONGO(N).

 

En la práctica, es mucho más útil

ORDENOBLONGO(N)=ENTERO(RAIZ(n))

No es difícil razonarlo.

 

Por ejemplo, resolvemos la cuestión de si existen oblongos que sean consecutivos a un triangular. Para ello se inserta en un buscador la condición

 

If escuad(8 * i + 1) And escuad(4 * (i + 1) + 1) Then

 

El escaso resultado era previsible, ya que se exige una condición difícil de cumplir, pero se encuentran tres soluciones entre los primeros cincuenta mil números, 1 con 2, 55 y 56, y el par 1891, 1892:

 


 

El resto de soluciones está publicado en https://oeis.org/A217758

 

Un atajo:

 

Si usamos el álgebra, obtenemos:

 

Es n(n+1)/2+1=k(k+1), n2+n+2=2k2+2k, 4n2+4n+8=8k2+8k,

(2n+1)2+7=2(2k+1)2-2 y hago X=2n+1 Y=2k+1

X2-2y2=-9, luego (X2+9)/2 es cuadrado

 

Le inserto esta condición al buscador y obtengo los triangulares publicados:



 

Siempre hay que acudir al Álgebra cuando se pueda.

 

POLIGONAL(N;K)

 

Fórmula directa

 

Los números poligonales poseen una fórmula general, que he desarrollado en mi publicación Números poligonales:


Su traducción es inmediata:

 

En VBASIC:

 

Function poligonal(n, k)

poligonal = n * (n * (k - 2) - (k - 4)) / 2

End Function

  

Fórmula del orden

El problema inverso es algo complicado. Lo puedes consultar en el apartado de Caracterización de los poligonales, en la publicación enlazada más arriba.

 

Su desarrollo en VBASIC es

 

Function ordenpoligonal(n, k)

Dim d, e, m

  

m = 0

d = (k - 4) ^ 2 + 8 * n * (k - 2)

If escuad(d) Then

m = (k - 4 + Sqr(d)) / 2 / (k - 2)

If esentero(m) Then e = m Else e = 0

End If

espoligonal = e

End Function

 

Esta función devuelve un cero si el número no es poligonal, y su orden si lo es. Las funciones ESCUAD Y ESENTERO se pueden buscar en este blog, o sustituirlas por cálculos más directos.

 

Estas dos funciones poseen una traducción sencilla a PARI, por lo que no se incluye.

 

Con ellas podemos buscar relaciones entre poligonales. Por ejemplo ¿Para qué órdenes la suma de un cuadrado con un triangular del mismo orden da una suma hexagonal?

 

Se buscaría que poligonal(i,3)+poligonal(i,4)=poligonal(k,6)

 

Con un buscador he encontrado estas dos primeras soluciones, con comprobación de la relación de suma entre ellas:



 

 

Otros poligonales

 

En mi calculadora de números figurados CALCUPOL, en su código VBASIC, puedes consultar todas las funciones disponibles para poligonales centrados, piramidales 3D y piramidales 4D. Es un tema tan extenso, que es preferible dejarlo como complemento para las personas interesadas.

(https://www.hojamat.es/sindecimales/aritmetica/herramientas/herrarit.htm#figurados)

 

 

lunes, 4 de mayo de 2026

Unas recurrencias muy útiles

Quienes usamos a menudo los números poligonales nos encontramos con esta relación de recurrencia de tercer orden:

xn= 3xn-1-3xn-2+xn-3

El origen de esta presencia es que se pueden generar con ella los números naturales, sus cuadrados y, evidentemente, las constantes:

Números naturales

Se pueden generar mediante

x1=1, x2=2,  x3=3, xn= 3xn-1-3xn-2+xn-3

En efecto, aquí xn es n, xn-1, n-1, luego

3(n-1)-3(n-2)+n-3=3n-3-3n+6+n-3=n

Esto demuestra que la recurrencia con estos coeficientes es verdadera.

Números cuadrados

En ellos también es válida esta recurrencia. Lo vemos:

xn+1=(n+1)2=n2+2n+1=xn+2n+1

xn+2=(n+2)2=(n+1)2+2(n+1)+1=xn+1+2n+3

Luego, despejando:

xn+2 - xn+1 = xn+1- xn +2

xn+2  = 2xn+1- xn +2

De igual forma

xn+3  = 2xn+2- xn+1 +2

Restamos las dos igualdades y agrupamos:

xn+3  - xn+2  = 2xn+2- xn+1 +2 -2xn+1+ xn -2

Despejando:

xn+3  = 3xn+2 -3xn+1+ xn

Con esto se demuestra la validez de la recurrencia. Por ejemplo:

112=121=3*102-3*92+82=300-243+64=364-243=121

También nos vale un desarrollo directo:

(n+3)2=3(n+2)2-3(n+1)2+n2=3n2+12n+12-3n2-6n-3+n2

n2+6n+9=n2+6n+9

Identidad que demuestra la recurrencia.

Constantes

Una constante K sometida a esa recurrencia sigue teniendo el valor de K: 3*K-3*K+K=K

Números oblongos

Siguen la fórmula n(n+1)=n2+n, y al ser la recurrencia propuesta de tipo lineal, también será válida en esa suma de un cuadrado con un natural.

Lo podemos comprobar con los primeros oblongos: 2, 6, 12, 20, 30, 42, …Por ejemplo, 30=3*20-3*12+6=60-36+6=24+6=30

 Números triangulares

Al tener un número triangular la fórmula n(n+1)/2=(n2+n)/2, es la mitad de un oblongo, luego admitirá la misma recurrencia. Lo vemos con un ejemplo tomado de la sucesión de números triangulares:

1 , 3 , 6 , 10 , 15 , 21, 28 , 36 , 45 , 55, …

45=3*36-3*28+21=108-84+21=129-84=45

 Polinomios de segundo grado

También se generarán de la misma forma, porque cuadrados, números naturales y constantes lo siguen. Lo vemos con P(x)=2x2-3x+2:

P(1)=1, P(2)=4, P(3)=11, P(4)=22, P(5)=37, P(6)=56 y P(7)=79

Observamos que P(7)=3*56-3*37+22=168-111+22=190-111=79

Números poligonales

Todo número poligonal es suma de triangulares. Basta ver la imagen:

Esta descomposición hace válida la recurrencia en ellos. En mi publicación sobre estos números se incluye una demostración con la fórmula general, que es un polinomio de segundo grado: P(n,k)=((k-2)n2-(k-4)n)/2

https://www.hojamat.es/publicaciones/poligonales.pdf

En esa publicación figuran otras recurrencias que a veces son más rápidas que la propuesta.

También siguen esta recurrencia los poligonales centrados, de fórmula POLC(n,k)=(kn2-kn+2)/2 , por ser también polinomio de segundo grado.

Números piramidales

Las sucesiones recurrentes de orden h se pueden sumar mediante la siguiente fórmula, también recurrente, que procede de la publicación Sucesiones recurrentes de A.I.Markushevich – Editorial Mir. La demostración de ella no es difícil, pero resulta larga para este estudio:

sn+h+1=(1+a1)sn+h+(a2-a1) sn+h-1+ … +(ah-ah-1) sn+1-ahsn

Si a esta recurrencia que estamos estudiando le aplicamos la fórmula de la suma, nos permitirá encontrar una recurrencia para números piramidales, que son sumas de poligonales consecutivos.

Tomamos a1=3, a2=-3 y a3=1 para aplicarlo a la fórmula de la suma

sn+h+1=(1+a1)sn+h+(a2-a1) sn+h-1+ … +(ah-ah-1) sn+1-ahsn

sn+4=4sn+3-6sn+2+4sn+1-sn

Lo aplicamos a los números piramidales pentagonales, 1, 6, 18, 40, 75, 126, 196, 288, 405, 550, ....

550=4*405-6*288+4*196-126=550

Tal como se advirtió en los poligonales, en este caso existen recurrencias que pueden ser más simples según el tipo de piramidal.

Piramidales de más dimensiones

Al igual que se pueden estudiar los piramidales como suma de poligonales consecutivos, se extiende este proceso a piramidales de más dimensiones, que son suma de piramidales consecutivos del orden inferior. Se deja como propuesta de estudio.