Calculateur du nombre de Jacobsthal
Saisissez un entier n de 0 à 40 et obtenez le n-ième nombre de Jacobsthal exact : la suite donne 0, 1, 1, 3, 5, 11, 21, 43, et J(40) vaut 366503875925. Chaque terme est le précédent plus le double de celui d'avant. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Indice n
- 0
- Nombre de Jacobsthal
- 0
Calculez le n-ième nombre de Jacobsthal à partir d'un seul entier n compris entre 0 et 40. L'outil renvoie n et sa value à l'aide de la forme close J(n) = (2^n - (-1)^n)/3, équivalente à la récurrence J(n) = J(n-1) + 2·J(n-2).
La suite de Jacobsthal
Les nombres de Jacobsthal débutent par J(0) = 0 et J(1) = 1, puis suivent la récurrence J(n) = J(n-1) + 2·J(n-2), donnant 0, 1, 1, 3, 5, 11, 21, 43, 85, 171, 341 et ainsi de suite. Chaque terme vaut à peu près le double du précédent, car les nombres de Jacobsthal consécutifs alternent juste au-dessus et juste au-dessous des puissances de deux ; ce sont les entiers les plus proches de 2^n/3.
Ce calculateur prend un seul entier naturel n via le champ requis n et renvoie un objet où ce n est repris en écho aux côtés de sa value, le n-ième terme de la suite.
Comment la valeur est calculée
Plutôt que d'itérer la récurrence, l'implémentation évalue directement la forme close J(n) = (2^n - (-1)^n)/3. Elle calcule 2^n en arithmétique BigInt à précision arbitraire, soustrait 1 lorsque n est pair et ajoute 1 lorsque n est impair (c'est le terme (-1)^n), puis divise par 3, ce qui est toujours exact puisque 2^n - (-1)^n est prouvablement divisible par trois. Le résultat BigInt exact est ensuite converti en nombre JavaScript.
Voilà pourquoi l'outil est déterministe et reproductible, sans dérive de virgule flottante accumulée par la somme de nombreux termes antérieurs.
Règles d'entrée et erreurs
L'unique champ n doit être un entier dans l'intervalle inclusif 0 à 40. Il n'y a pas de paramètre decimals ni de configuration facultative, de sorte que les requêtes sont minimales et sans ambiguïté. Comme la validation intervient en amont et que l'arithmétique est exacte, les échecs sont peu coûteux et sûrs à réessayer, et le code d'erreur lisible par machine permet à un client de distinguer une requête incorrecte d'un problème de transport.
Cas d’usage
Combinatoire et théorie des nombres
Consultez un terme de Jacobsthal exact lorsque vous travaillez sur des pavages, des chaînes de Cunningham ou des identités 2-adiques.
Travail sur les suites et l'OEIS
Générez des valeurs de référence de J(n) pour vérifier un code ou une formule face à A001045 sans bibliothèque locale.
Enseignement des récurrences
Montrez que la forme close (2^n - (-1)^n)/3 coïncide avec J(n) = J(n-1) + 2·J(n-2) pour chaque n.
Questions fréquentes
Que renvoie l'outil ?
Un objet contenant votre n et value, le n-ième nombre de Jacobsthal calculé à partir de J(n) = (2^n - (-1)^n)/3.
Pourquoi n est-il limité à 40 ?
Pour que le résultat BigInt exact tienne dans la plage des entiers sûrs 2^53 ; J(40) vaut 366503875925, sans perte de précision.
Le résultat est-il exact ?
Oui. Les nombres de Jacobsthal sont des entiers et la division par trois est toujours exacte, il n'y a donc aucun arrondi.
À quoi servent les nombres de Jacobsthal ?
En combinatoire et en théorie des nombres, par exemple pour les pavages, les chaînes de Cunningham et les identités 2-adiques. Ce sont aussi des valeurs de référence pratiques pour vérifier votre propre programme ou formule face à la suite publiée A001045.
Existe-t-il une formule qui évite de calculer terme par terme ?
Oui. Élevez 2 à la puissance n, retranchez 1 si n est pair ou ajoutez 1 s'il est impair, puis divisez par 3. Pour J(3), cela fait 8 plus 1, soit 9, divisé par 3 : le résultat est 3, et la division tombe toujours juste.
Outils associés
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre 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)Exemple de requête
{
"n": 5
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.jacobsthal_number",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
Notes techniques
Comment la valeur est calculée
Le domaine est plafonné à n = 40 précisément pour que la réponse reste dans la plage des entiers sûrs 2^53 et ne perde jamais de précision lors de cette conversion : J(40) vaut 366503875925, bien en deçà de la limite.
Règles d'entrée et erreurs
Tout le reste déclenche une erreur invalid_input typée portant le message "n inválido" : une valeur négative, une valeur supérieure à 40, un non-entier tel que 2,5, une chaîne ou un champ absent échouent tous à la même vérification avant qu'aucun calcul ne s'exécute. L'exemple traité passe n = 0 et reçoit value 0, le premier terme de la suite.
Questions techniques
Quelle entrée est invalide ?
Les non-entiers, les valeurs négatives, les valeurs supérieures à 40 ou un n absent renvoient une erreur invalid_input typée affichant "n inválido".
Est-ce gratuit ?
Oui dans le navigateur, sous forme de widget tier A. L'API déterministe coûte $0.002 par appel réussi ; les tâches en échec ne sont pas facturées.