Ecuación de Pell
Obtenga la menor solución positiva de x² − Dy² = 1 para un D no cuadrado: con 2 es x 3 e y 2, y con 61 salta a x 1766319049 e y 226153980, exacta hasta la última cifra. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- D
- 61
- X
- 1766319049
- Y
- 226153980
- Iteraciones
- 22
El solucionador de la ecuación de Pell calcula la solución fundamental de x² − Dy² = 1 para un entero positivo D que no sea un cuadrado perfecto. Introduzca D y recibirá el menor par de enteros positivos x e y que satisface la igualdad. El cálculo emplea aritmética entera exacta, por lo que conserva incluso resultados que superan el intervalo numérico habitual de JavaScript. Resulta útil para ejercicios de teoría de números, el estudio de fracciones continuas, pruebas de algoritmos y programas que necesitan una solución canónica fiable.
Qué significa la solución fundamental
Para un entero positivo D fijo que no sea cuadrado, la ecuación de Pell busca valores enteros que cumplan x² − Dy² = 1. Existen infinitas soluciones positivas, pero todas se generan a partir de un único par no trivial mínimo. Esta calculadora devuelve ese par, denominado solución fundamental: x e y son positivos, la identidad se cumple exactamente y no existe un x positivo menor que resuelva la misma ecuación.
La entrada debe ser un número entero entre 2 y 10,000,000. Los cuadrados perfectos se rechazan porque x² − Dy² se factoriza como (x − √D y)(x + √D y), de modo que no existe una solución positiva con y mayor que cero. Los resultados se expresan como cadenas decimales, no como valores de coma flotante.
Así se conserva cada dígito cuando la solución fundamental es extraordinariamente grande, algo que ocurre incluso con ciertos valores moderados de D. Puede copiar la respuesta directamente a un sistema algebraico o a una biblioteca de precisión arbitraria sin redondearla antes.
Cómo encuentran la respuesta las fracciones continuas
El algoritmo desarrolla √D como una fracción continua simple periódica. Sus convergentes ofrecen aproximaciones racionales p/q cada vez más precisas de √D, y el numerador y el denominador de uno de ellos terminan cumpliendo p² − Dq² = 1. El solucionador actualiza el estado de la fracción continua y las dos recurrencias de convergentes mediante operaciones enteras deterministas.
Tras cada paso comprueba la identidad de Pell con aritmética BigInt y devuelve inmediatamente la primera solución positiva. Ese primer convergente válido es la solución fundamental; por tanto, la herramienta no necesita recorrer pares enteros arbitrarios ni adivinar un límite para x e y. El recuento de iteraciones indica cuántos convergentes se probaron, incluida la parte entera inicial de √D.
Este campo permite comparar longitudes de período o examinar el rendimiento, pero no altera el resultado matemático. La prueba final de la identidad no utiliza aproximaciones numéricas. La raíz cuadrada ordinaria solo determina el suelo entero exacto para el D acotado; todos los valores potencialmente grandes y todas las igualdades se calculan de forma exacta.
Cómo utilizar y comprobar los valores devueltos
Una respuesta correcta contiene d, x, y e iterations. En el código de su aplicación, trate x e y como cadenas de enteros decimales: los lenguajes con enteros de precisión arbitraria pueden interpretarlas directamente; los sistemas limitados a números de ancho fijo deben conservar las cadenas o emplear una biblioteca de enteros grandes. Para verificar el resultado de manera independiente, eleve x al cuadrado, reste D multiplicado por el cuadrado de y y confirme que el resultado sea exactamente uno.
Realice esa comprobación con aritmética entera, no con coma flotante. Los tipos no válidos, las fracciones, los valores fuera del intervalo publicado y los cuadrados perfectos generan un error de entrada no válida en lugar de un resultado engañoso. El solucionador no usa red, aleatoriedad, estado almacenado ni fecha actual, por lo que el mismo D siempre genera la misma respuesta.
Qué puede hacer con ella
Compruebe ejercicios de teoría de números
Calcule la solución canónica mínima y contraste un desarrollo manual en fracción continua con valores exactos de x e y.
Cree casos de prueba deterministas
Genere soluciones exactas de Pell para validar aritmética de precisión arbitraria, recurrencias o rutinas de álgebra computacional.
Explore períodos de fracciones continuas
Compare el número de iteraciones y el tamaño de las soluciones para distintos valores no cuadrados de D.
Preguntas frecuentes
¿Qué devuelve el solucionador?
Devuelve el valor d, la solución positiva fundamental x e y como cadenas decimales exactas y el número de convergentes probados.
¿Por qué se rechaza un D cuadrado perfecto?
Si D es cuadrado, no existe una solución de Pell no trivial con y positivo y, por ello, tampoco una solución positiva fundamental.
¿Qué intervalo de entrada se admite?
D debe ser un entero completo no cuadrado entre 2 y 10,000,000.
¿Cuál es la solución fundamental cuando D vale 61?
Es x 1766319049 e y 226153980. Se alcanza tras probar 22 convergentes de la fracción continua de la raíz cuadrada de 61, y todas las cifras son exactas.
¿Qué significa el número de iteraciones?
Es la cantidad de convergentes de la fracción continua que se probaron hasta dar con la solución, contando la parte entera de la raíz. Sirve para comparar periodos, pero nunca cambia el resultado.
Herramientas relacionadas
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/numth/pell-equation-solver \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"d":61}'const res = await fetch("https://api.kit.forhosting.com/numth/pell-equation-solver", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"d": 61
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/pell-equation-solver",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"d": 61
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/pell-equation-solver", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"d":61}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"d":61}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/pell-equation-solver", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"d": 61
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.pell_equation_solver",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
max_d | 10000000 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
Qué significa la solución fundamental
Por ejemplo, D = 2 produce x = 3 e y = 2 porque 3² − 2 × 2² es igual a 1.
Cómo utilizar y comprobar los valores devueltos
Envíe un objeto con el campo d, por ejemplo {"d": 13}. También se admite el alias D en mayúscula para fórmulas copiadas con la notación convencional. El navegador sirve para cálculos individuales; la API cuesta $0.002 por solicitud cuando necesite integrarla en un script, servicio educativo o conjunto de pruebas.
Preguntas técnicas
¿Por qué x e y son cadenas?
Las soluciones de Pell pueden superar el intervalo entero seguro de entornos JSON habituales. Las cadenas decimales evitan cualquier redondeo.
¿Cuánto cuesta una llamada a la API?
Cada solicitud a la API cuesta $0.002. También puede ejecutar la capacidad gratis en el navegador.