La secuencia de números no cuadrados que no son cuadrados perfectos, es decir, 2,3,5,6,7,8,10 … se puede obtener mediante la fórmula F (n) = n + piso (0.5 + sqrt (n)). ¿Cómo probamos esto?

Considere todos los enteros [matemática] n [/ matemática] entre cuadrados consecutivos [matemática] k ^ {2} [/ matemática] y [matemática] (k + 1) ^ {2} [/ matemática] sin incluir este último. Estos pueden representarse de forma exclusiva como [matemáticas] k ^ {2} + r [/ matemáticas], donde [matemáticas] 0 <= r <2k + 1 [/ matemáticas]

Dentro del intervalo anterior, podemos mostrar que [math] \ lfloor (0.5+ \ sqrt {k ^ 2 + r}) \ rfloor = k [/ math] if [math] 0 <= r <= k [/ math] y [matemáticas] (k + 1) [/ matemáticas] de lo contrario

Un bosquejo para esto es considerar [math] \ sqrt {k ^ 2 + r} = (k + e) ​​[/ math] donde e es la parte fraccionaria de la raíz. [matemáticas] 0 <= e <1 [/ matemáticas]

Después de cuadrar y algunas manipulaciones, obtenemos [matemáticas] e <= \ frac {r} {2k} [/ matemáticas]

Para [matemáticas] 0 <= r <= k, e <= 1/2 [/ matemáticas]

[math] e = 1/2 [/ math] se puede descartar, dando así [math] e <1/2 [/ math] para el subintervalo anterior

Del mismo modo, se puede mostrar que [matemáticas] e> 1/2 [/ matemáticas] para el otro subintervalo.

Ahora, [matemáticas] F (n) = F (k ^ {2} + r) [/ matemáticas] [matemáticas] = k ^ {2} + r + \ lfloor (0.5+ \ sqrt {k ^ 2 + r}) \ rpiso [/ matemáticas]

[matemática] = k ^ {2} + k + r [/ matemática] [matemática] \ text {if} 0 = <r <= k [/ matemática]
[matemática] = k ^ 2 + k + r + 1 [/ matemática] [matemática] \ text {if} k <r <2k + 1 [/ matemática]

Por partes, [matemática] F (k ^ {2} + r) [/ matemática] toma todos los valores consecutivamente entre [matemática] k ^ {2} + k [/ matemática] a [matemática] k ^ {2} + 2k [/ matemática] y luego nuevamente de [matemática] k ^ {2} + 2k + 2 [/ matemática] a [matemática] k ^ {2} + 3k + 1 [/ matemática]

El único número cuadrado entre [matemáticas] k ^ {2} + k [/ matemáticas] y [matemáticas] k ^ {2} + 3k + 1 [/ matemáticas] es [matemáticas] (k + 1) ^ {2} [ / math] (porque los números están entre [math] k ^ {2} [/ math] y [math] (k + 2) ^ {2} [/ math]), ha sido ignorado por la función.

Además, para el siguiente conjunto de números de entrada a partir de [matemática] (k + 1) ^ {2} [/ matemática] a [matemática] (k + 2) ^ {2} -1 [/ matemática], los valores de salida comenzar consecutivamente desde [math] (k + 1) ^ {2} + (k + 1) = k ^ {2} + 3k + 2 [/ math], continuando así la cadena desde donde la habíamos dejado anteriormente.

Por lo tanto, la salida de F es una cadena de enteros consecutivos que comienzan en [matemática] F (1) = 2 [/ matemática] y que ignora solo los cuadrados perfectos.

Bueno, estoy seguro de que un poco de intuición no hace daño a los matemáticos. De todos modos, ahora mi objetivo es mover mis [matemáticas] s [/ matemáticas] donde [matemáticas] s [/ matemáticas] es un cuadrado perfecto a otro cuadrado no perfecto. Cuando [math] n = 1 [/ math] se debe mover a 2. cuando [math] n = 4 [/ math], se ha movido 2 lugares por delante del número real 4. Por lo tanto, funciona. Y si me he movido usando este patrón, puede sentir intuitivamente que si tomo el número [matemático] k ^ 2 [/ matemático] necesita ser movido a [matemático] k ^ 2 + k [/ matemático] a medida que Ya he movido los k cuadrados perfectos anteriores a 1 más. Entonces, simplemente sustituya [math] k ^ 2 [/ math] en la fórmula y verá que [math] f (n) [/ math] es de hecho [math] k ^ 2 + k [/ math].