Calculadora de números de Jacobsthal
Escriba un número entero n de 0 a 40 y obtenga el enésimo número de Jacobsthal exacto: la sucesión va 0, 1, 1, 3, 5, 11, 21, 43, y J(40) vale 366503875925. Cada término es el anterior más el doble del previo. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Índice n
- 0
- Número de Jacobsthal
- 0
Calcule el n-ésimo número de Jacobsthal a partir de un único entero n entre 0 y 40. La herramienta devuelve n y su valor mediante la fórmula cerrada J(n) = (2^n - (-1)^n)/3, equivalente a la recurrencia J(n) = J(n-1) + 2·J(n-2).
La sucesión de Jacobsthal
Los números de Jacobsthal arrancan con J(0) = 0 y J(1) = 1, y luego siguen la recurrencia J(n) = J(n-1) + 2·J(n-2), dando 0, 1, 1, 3, 5, 11, 21, 43, 85, 171, 341 y así sucesivamente. Cada término es aproximadamente el doble del anterior, ya que los números de Jacobsthal consecutivos alternan justo por encima y por debajo de las potencias de dos; son los enteros más cercanos a 2^n/3.
Esta calculadora toma un único entero no negativo n a través del campo obligatorio n y devuelve un objeto con ese n reproducido y su valor, el n-ésimo término de la sucesión.
Cómo se calcula el valor
En lugar de iterar la recurrencia, la implementación evalúa directamente la fórmula cerrada J(n) = (2^n - (-1)^n)/3. Calcula 2^n con aritmética BigInt de precisión arbitraria, resta 1 cuando n es par y suma 1 cuando n es impar (ese es el término (-1)^n) y divide entre 3, lo cual siempre es exacto porque 2^n - (-1)^n es demostrablemente divisible entre tres. El resultado BigInt exacto se convierte después en un número de JavaScript.
Reglas de entrada y errores
El único campo n debe ser un entero en el rango inclusivo de 0 a 40. No hay parámetro decimals ni configuración opcional, de modo que las solicitudes son mínimas e inequívocas. Como la validación ocurre por adelantado y la aritmética es exacta, los fallos son baratos y seguros de reintentar, y el código de error legible por máquina permite que un cliente distinga una solicitud incorrecta de un problema de transporte.
Qué puede hacer con ella
Combinatoria y teoría de números
Consulte un término exacto de Jacobsthal al trabajar con teselaciones, cadenas de Cunningham o identidades 2-ádicas.
Trabajo con sucesiones y OEIS
Genere valores de referencia de J(n) para contrastar código o una fórmula frente a A001045 sin una biblioteca local.
Enseñanza de recurrencias
Muestre que la fórmula cerrada (2^n - (-1)^n)/3 coincide con J(n) = J(n-1) + 2·J(n-2) para cada n.
Preguntas frecuentes
¿Qué devuelve?
Un objeto con su n y value, el n-ésimo número de Jacobsthal calculado a partir de J(n) = (2^n - (-1)^n)/3.
¿Por qué se limita n a 40?
Para que el resultado BigInt exacto quepa en el rango de enteros seguros de 2^53; J(40) es 366503875925, sin pérdida de precisión.
¿Es exacto el resultado?
Sí. Los números de Jacobsthal son enteros y la división entre tres siempre es exacta, así que no hay redondeo.
¿Para qué se usan los números de Jacobsthal?
En combinatoria y teoría de números, por ejemplo en problemas de teselados, cadenas de Cunningham e identidades 2-ádicas. También sirven como valores de referencia para comprobar su propio programa o fórmula frente a la sucesión publicada A001045.
¿Hay una fórmula que evite calcular término a término?
Sí. Eleve 2 a la potencia n, reste 1 si n es par o sume 1 si es impar, y divida entre 3. Para J(3) son 8 más 1, es decir 9, entre 3: el resultado es 3, y la división siempre es exacta.
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/math/jacobsthal-number \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":5}'const res = await fetch("https://api.kit.forhosting.com/math/jacobsthal-number", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/jacobsthal-number",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/jacobsthal-number", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/jacobsthal-number", 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
{
"n": 5
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.jacobsthal_number",
"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.
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
Cómo se calcula el valor
El dominio se limita a n = 40 precisamente para que la respuesta se mantenga dentro del rango de enteros seguros de 2^53 y nunca pierda precisión en esa conversión: J(40) es 366503875925, muy por debajo del límite. Por eso la herramienta es determinista y reproducible, sin deriva acumulada de coma flotante por sumar muchos términos previos.
Reglas de entrada y errores
Cualquier otra cosa lanza un error tipado invalid_input con el mensaje "n inválido": un valor negativo, un valor superior a 40, un no entero como 2.5, una cadena o un campo ausente fallan todos la misma comprobación antes de que se ejecute cálculo alguno. El ejemplo resuelto pasa n = 0 y recibe value 0, el primer término de la sucesión.
Preguntas técnicas
¿Qué entrada es inválida?
Los no enteros, los negativos, los valores superiores a 40 o un n ausente devuelven un error tipado invalid_input que dice "n inválido".
¿Es gratis?
Sí, en el navegador como widget tier A. La API determinista cuesta $0.002 por llamada correcta; las tareas fallidas no se cobran.