Calculateur de la suite d'Ulam
Les dix premiers nombres d'Ulam sont 1, 2, 3, 4, 6, 8, 11, 13, 16 et 18 : le dixième vaut donc 18. Indiquez combien de termes il vous faut pour obtenir la liste ordonnée et sa dernière valeur. 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
- Dernier
- 18
La suite d'Ulam est la suite d'entiers qui commence par un et deux, puis ajoute à chaque fois le plus petit entier pouvant s'écrire comme somme de deux termes antérieurs distincts d'exactement une façon. Cette règle de somme unique est simple à énoncer et étonnamment riche : les premiers termes semblent presque arithmétiques, puis des trous apparaissent, puis des grappes irrégulières sans forme fermée simple connue. Les étudiants la rencontrent en théorie des nombres récréative, les concours de programmation demandent les n premiers termes ou le n-ième nombre d'Ulam, et les notes de recherche étudient encore sa densité. Cette capacité accepte un entier positif n et renvoie le préfixe ordonné de longueur n, le dernier terme et une courte chaîne de formule qui reformule la définition.
Comment la suite d'Ulam est définie et pourquoi les sommes uniques comptent
Stanisław Ulam a défini la suite de sorte que les deux premiers termes soient un et deux, et que chaque terme ultérieur soit le plus petit entier strictement supérieur au précédent qui admet exactement une représentation comme somme de deux membres antérieurs distincts.
Selon cette règle, trois vaut un plus deux (unique), quatre vaut un plus trois (unique ; deux plus deux est interdit car les summands doivent être distincts), cinq vaut à la fois un plus quatre et deux plus trois (deux façons, donc omis), six vaut seulement deux plus quatre parmi les paires de termes antérieurs, et la suite continue huit, onze, treize, seize, dix-huit, et ainsi de suite.
Le filtre d'unicité sépare les nombres d'Ulam de l'ensemble de toutes les sommes de paires antérieures : de nombreux candidats ont deux représentations ou plus et sont rejetés même s'ils dépassent le maximum courant. Il n'existe pas de formule simple connue pour le n-ième terme, aussi un calcul fiable parcourt les candidats vers le haut, compte les paires non ordonnées issues des termes déjà acceptés, et accepte le premier candidat avec un compte de paires exactement égal à un.
Cette procédure est entièrement déterministe : le même n produit toujours la même liste ordonnée, sans graines aléatoires, horloges, dérive en virgule flottante ni appels réseau. Lorsque vous n'avez besoin que de la n-ième valeur, lisez le champ last de la réponse ; lorsque vous avez besoin de tout l'historique pour une diapositive de cours ou un correcteur de concours, utilisez le tableau sequence tel quel.
À quoi sert la suite d'Ulam
Les cours de théorie des nombres et les clubs de mathématiques récréatives utilisent un calculateur de suite d'Ulam pour que les apprenants génèrent un préfixe fiable sans compter à la main les sommes de paires de chaque candidat. Les auteurs de concours de programmation et les correcteurs LMS ont besoin d'un oracle déterministe qui marque comme fausse toute liste incluant cinq ou sept parmi les premiers termes, et qui rejette n inférieur à un au lieu de renvoyer un succès vide qu'un correcteur buggé pourrait traiter comme correct.
Les carnets de recherche qui explorent les trous, les conjectures de densité ou les comparaisons avec des bases additives voisines bénéficient d'une implémentation de référence partagée plutôt que de recoder la boucle de somme unique dans chaque langage. Les démos produit et les questions d'entretien sur les bases additives peuvent montrer un court tableau à côté de la croissance de Fibonacci ou de Sylvester sans prétendre qu'il existe une forme fermée.
Gardez n dans la limite publiée, ancrez le tableau sequence dans les tests, et vous obtiendrez des préfixes d'Ulam reproductibles pour les devoirs, plugins CMS et workers de bord sans déployer d'infrastructure de calcul symbolique propre. Si vous avez ensuite besoin du seul n-ième terme sous une autre convention d'indexation, de suites de type Ulam modulaires ou de comptes d'unicité pour des bases arbitraires, traitez-les comme des intentions de recherche distinctes plutôt que de surcharger cette landing.
Cas d’usage
Contrôles en classe et devoirs
Laissez les élèves demander les n premiers nombres d'Ulam et vérifier que chaque terme après deux a une somme unique de deux termes antérieurs, en capturant les erreurs courantes comme inclure cinq ou sept.
Carnets de recherche et tracés de trous
Intégrez des termes initiaux exacts dans des scripts qui étudient trous, densité ou bases additives sans réimplémenter à chaque fois la recherche de somme unique.
Questions fréquentes
Qu'est-ce que la suite d'Ulam ?
Elle commence par 1 et 2. Chaque terme ultérieur est le plus petit entier supérieur au précédent pouvant s'écrire comme somme de deux termes antérieurs distincts d'exactement une façon.
Que renvoie ce calculateur pour un n donné ?
Les n premiers nombres d'Ulam dans sequence, le n-ième terme dans last, le n renvoyé en écho et une courte chaîne de formule.
Que se passe-t-il si n est inférieur à un ?
La longueur de la suite doit être au moins 1 ; zéro et les n négatifs ne sont pas réécrits en valeurs par défaut.
Pourquoi 5 n'est-il pas un nombre d'Ulam ?
Cinq vaut à la fois 1+4 et 2+3, donc il a deux représentations comme somme de termes antérieurs et la règle de somme unique l'omet.
Quels sont les dix premiers nombres d'Ulam ?
Ce sont 1, 2, 3, 4, 6, 8, 11, 13, 16 et 18. Des nombres comme 5 ou 7 sont sautés, car on peut les obtenir à partir de deux termes précédents de plusieurs façons.
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/numth/ulam-sequence \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":10}'const res = await fetch("https://api.kit.forhosting.com/numth/ulam-sequence", {
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/numth/ulam-sequence",
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/numth/ulam-sequence", 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/numth/ulam-sequence", 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": "numth.ulam_sequence",
"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
min_n | 1 |
max_n | 500 |
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
Les requêtes avec n inférieur à un échouent avec invalid_input au lieu d'inventer une suite vide ou décalée. Le chemin gratuit du navigateur et l'API payante partagent un même module pur et déterministe, de sorte que les démonstrations en classe et les pipelines automatisés ne divergent jamais sur l'appartenance de cinq ou sept à la liste.
Contrat d'entrée, forme de la réponse et comportement d'erreur
Si n est inférieur à un, le gestionnaire rejette la requête avec un message clair indiquant qu'une longueur de suite d'Ulam inférieure à un est invalide, conformément à la règle produit selon laquelle cette capacité renvoie toujours au moins le premier terme et ne réécrit jamais en silence un zéro ou une longueur négative en valeur par défaut. L'échec de validation n'est pas facturé. Envoyez en POST un corps JSON avec un unique champ entier obligatoire n, le nombre de termes d'Ulam initiaux souhaités. Les alias count, length et terms sont acceptés avec le même sens. La valeur doit être un entier de un à cinq cents inclus ; les chaînes numériques qui sont des entiers exacts sont admises, mais les décimales, jetons non numériques, champs manquants et chaînes vides échouent avec invalid_input en nommant le problème. Si n dépasse cinq cents, la requête est rejetée afin que la latence au pire cas reste adaptée à un outil gratuit dans le navigateur et à un chemin Worker léger. En cas de succès, le corps inclut le n normalisé, sequence comme tableau ascendant de nombres JSON ordinaires (sûrs pour tout n pris en charge car les termes d'Ulam croissent à peu près linéairement avec l'indice dans cette plage), last égal à sequence[n-1], et formula reformulant la définition classique pour l'affichage à côté de la réponse. Contrôles d'exemple : n égal à un produit la suite un et last un ; n égal à deux produit un puis deux ; n égal à dix produit un, deux, trois, quatre, six, huit, onze, treize, seize, dix-huit avec last dix-huit ; n égal à zéro ou n négatif produit invalid_input.
Où une API de suite d'Ulam prouve réellement son utilité
Comme l'implémentation est pure parse de niveau A, chaque appel réussi coûte le prix de base publié $0.002 sans jetons de modèle ni réseau sortant, et une entrée invalide ne consomme pas le solde.
Cas d'intégration
Fixtures de concours et notation automatique
Générez des préfixes d'Ulam déterministes pour des problèmes de programmation et notez les soumissions face à un oracle de confiance qui rejette n inférieur à un.
Questions techniques
Combien coûte le calculateur de la suite d'Ulam ?
L'outil navigateur est gratuit. Les requêtes API utilisent le solde prépayé KIT à $0.002 par appel réussi ; une entrée invalide n'est pas facturée.