Suite diatomique de Stern / Stern–Brocot
Obtenez n'importe quel terme de la suite diatomique de Stern à partir de son indice : s(10) vaut 3, calculé par étapes entières qui divisent l'indice par deux, si bien que même les grands indices restent exacts. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- N
- 10
- Valeur Stern
- 3
- Récurrence
- s(0)=0; s(1)=1; s(2k)=s(k); s(2k+1)=s(k)+s(k+1)
La suite diatomique de Stern est une suite d’entiers classique étroitement liée à l’arbre Stern–Brocot des rationnels positifs. Elle se définit par deux valeurs de départ et une règle de scission selon la parité de l’indice : s de zéro vaut zéro, s de un vaut un ; lorsque l’indice est pair et égal à deux k le terme vaut s de k ; lorsqu’il est impair et égal à deux k plus un le terme vaut s de k plus s de k plus un. La liste résultante commence par zéro, un, un, deux, un, trois, deux, trois, un, quatre, trois, cinq, deux, cinq, trois, quatre, et se poursuit avec la propriété frappante que des termes consécutifs sont toujours premiers entre eux.
Ce qu’est la suite diatomique de Stern et comment fonctionne la récurrence pair/impair
Commencez avec les graines s de zéro égal à zéro et s de un égal à un. Pour tout indice ultérieur la règle ne dépend que de la parité. Si n est pair, écrivez n égal à deux k et posez s de n égal à s de k — la même valeur apparaît à la moitié de l’indice.
Si n est impair, écrivez n égal à deux k plus un et posez s de n égal à s de k plus s de k plus un. Dérouler quelques étapes produit zéro, un, un, deux, un, trois, deux, trois, un, quatre, trois, cinq, deux, cinq, trois, quatre, un, cinq, quatre, sept, trois, et ainsi de suite.
Les paires adjacentes sont toujours copremières, tout rationnel positif apparaît exactement une fois comme rapport consécutif s de m sur s de m plus un en parcourant la suite, et cette énumération est exactement l’arbre Stern–Brocot aplati en largeur. La même récurrence s’appelle parfois suite de Calkin–Wilf ou Stern–Brocot selon la présentation ; cet outil utilise la forme diatomique standard avec s de zéro égal à zéro.
Comme chaque étape est une addition entière exacte ou un pur demi-indice, il n’y a ni erreur d’arrondi ni dépendance à l’horloge ou à des graines aléatoires. Quand vous n’avez besoin que d’un seul terme, envoyez l’indice n ; la réponse renvoie n, la valeur de Stern, une courte chaîne de formule pour les cas pair et impair, et la description complète des graines de récurrence pour que correcteurs et élèves recomposent à la main ou sur papier.
Conseils pratiques, limites et recherches liées
En notant, affirmez à la fois le champ stern et la chaîne formula pour qu’une mauvaise récurrence ou une confusion avec Fibonacci soit facile à diagnostiquer. Des pages sœurs de ce kit couvrent d’autres intentions de suites et figurés comme les nombres de Padovan, triangulaires, polygonaux et sommes de séries arithmétiques ; cette page est spécifiquement pour ceux qui cherchent une calculatrice de suite Stern–Brocot, des nombres diatomiques de Stern ou le n-ième terme de la suite de Stern.
Ne traitez pas l’entier seul comme une boîte noire — couplez-le aux règles pair et impair documentées en enseignant pour ne pas confondre des décalages OEIS alternatifs avec la convention s de zéro égal à zéro utilisée ici. Plafonnez n à un milliard pour que chaque requête reste bornée ; si vous avez besoin d’indices plus grands, passez à des outils de grands entiers hors de ce chemin gratuit de parse.
Cas d’usage
Validateurs pour concours de programmation et entretiens
Validez des solutions candidates aux problèmes de suite de Stern ou d’arbre Stern–Brocot sans réimplémenter la récurrence dans chaque banc d’essai de langage.
Démos pédagogiques de paires consécutives copremières et énumération rationnelle
Projetez n, stern, formula et recurrence en classe pour que les apprenants voient les graines, les règles pair et impair, et comment les rapports consécutifs couvrent les rationnels positifs.
Questions fréquentes
Qu’est-ce que la suite diatomique de Stern ?
La suite définie par s(0)=0, s(1)=1, s(2k)=s(k) et s(2k+1)=s(k)+s(k+1). Elle commence 0, 1, 1, 2, 1, 3, 2, 3, 1, 4, 3, 5, … et est liée à l’arbre Stern–Brocot.
Pourquoi l’appelle-t-on Stern–Brocot ?
Parcourir les paires consécutives s(n)/s(n+1) énumère chaque rationnel positif exactement une fois — la même structure que l’arbre Stern–Brocot de fractions. La suite elle-même est la diatomique de Stern.
Que valent s(0) et s(1) ?
Sous la convention utilisée ici, s(0)=0 et s(1)=1. Tout terme ultérieur suit les règles d’indice pair et impair. La réponse renvoie toujours la récurrence pour que les graines soient explicites.
Comment calculer s(10) à la main ?
Divisez l'indice par deux tant qu'il est pair et scindez-le quand il est impair. Comme 10 est pair, s(10) égale s(5) ; 5 est impair, donc s(5) vaut s(2) plus s(3), soit 1 plus 2, ce qui donne 3.
Pourquoi deux termes consécutifs n'ont-ils jamais de facteur commun ?
C'est une propriété de la suite : deux termes voisins sont toujours premiers entre eux. Grâce à elle, les rapports s(m) sur s(m + 1) parcourent chaque fraction positive exactement une fois, déjà irréductible, ce qui reproduit l'arbre de Stern-Brocot.
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/stern-brocot \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":10}'const res = await fetch("https://api.kit.forhosting.com/math/stern-brocot", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 10
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/stern-brocot",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 10
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/stern-brocot", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":10}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":10}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/stern-brocot", 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": 10
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.stern_brocot",
"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.
Limites
max_n | 1000000000 |
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
Cette capacité renvoie la valeur exacte n-ième de Stern comme objet JSON déterministe — sans paquet de calcul formel, sans approximation flottante, sans appel réseau — de sorte que correcteurs de devoirs, validateurs de concours et démos pédagogiques voient le même résultat entier pur dans l’exécuteur gratuit du navigateur et sur la voie API prépayée.
Ce qu’est la suite diatomique de Stern et comment fonctionne la récurrence pair/impair
Les indices négatifs ne font pas partie de cette suite classique non négative : le gestionnaire les rejette avec invalid_input plutôt que d’inventer une extension signée.
Comment appeler l’API et ce qui revient
Une réponse réussie inclut n en écho, stern égal à s de n, formula égal aux règles compactes pair et impair, et recurrence documentant les graines avec s de deux k égal à s de k et s de deux k plus un égal à s de k plus s de k plus un. Utilisez-le depuis des pipelines de devoirs, des validateurs de concours de programmation, des bacs à sable de préparation d’entretiens, des jobs d’enrichissement de carnets, ou tout flux qui a besoin d’un terme de Stern reproductible sans installer de paquets de suites spécialisés sur chaque machine. Pour des indices multiprécision au-delà de cette limite, utilisez une pile de grands entiers dédiée au lieu de cette capacité légère de parse. Envoyez un corps JSON avec un seul champ obligatoire n : un entier non négatif au plus un milliard, l’indice du terme de Stern voulu. Les alias index et order sont acceptés pour le même sens. Une validation échouée — n manquant, non-entier, fraction, valeur au-dessus de la limite publiée d’un milliard, ou tout nombre négatif — renvoie invalid_input et n’est jamais facturée. Le tarif est un forfait $0.002 par requête réussie avec item unitaire et prix marginal nul. Gardez n dans le plafond publié ; la marche pair/impair est logarithmique en n, donc une seule requête reste bon marché sur le Worker et dans le navigateur.
Conseils pratiques, limites et recherches liées
Préférez des exemples de classe appariés : n égal à zéro donne zéro ; n égal à un donne un ; n égal à dix donne trois ; n égal à quinze donne quatre ; et un n négatif démontre le rejet strict avec invalid_input. Comme des termes consécutifs sont toujours premiers entre eux, les élèves peuvent vérifier le pgcd de s de n et s de n plus un à la main pour de petits n et coller à l’API. Les tâches échouées qui renvoient invalid_input ne consomment pas le solde prépayé, ce qui maintient les scripts exploratoires peu coûteux lorsque les utilisateurs saisissent de mauvaises valeurs en apprenant le contrat.
Cas d'intégration
Devoirs : calculer le n-ième terme diatomique de Stern
Donnez aux élèves un indice et comparez leur valeur de Stern calculée à la main à un résultat déterministe de l’API ou du navigateur gratuit avec la même récurrence pair/impair et les mêmes graines.
Questions techniques
Quelles entrées sont rejetées ?
N manquant, non-entiers, valeurs au-dessus de 1_000_000_000 et tout nombre négatif renvoient invalid_input. Ces échecs ne sont pas facturés.
La calculatrice de suite Stern–Brocot est-elle gratuite ?
L’outil navigateur est gratuit et s’exécute localement. Les appels API utilisent le solde KIT prépayé à $0.002 par requête réussie ; les échecs ne sont jamais facturés.