Calculateur de développement d’Engel pour fractions
Ce calculateur de développement d’Engel convertit tout nombre rationnel positif en sa représentation exacte sous forme de somme de produits.
Lancer gratuitement
Saisissez une fraction telle que 4/13 pour obtenir la suite non décroissante des dénominateurs d’Engel, les fractions unitaires correspondantes et une version normalisée de l’entrée. Tous les calculs reposent sur l’arithmétique entière : les approximations décimales périodiques et les arrondis en virgule flottante ne peuvent donc pas modifier le résultat. Cet outil convient à l’étude de la théorie des nombres, aux exemples corrigés, aux vérifications symboliques et aux tests logiciels reproductibles.
Ce que représente un développement d’Engel
Un développement d’Engel exprime un réel positif comme une somme dont les dénominateurs sont des produits cumulés. Si la liste renvoyée est a1, a2, a3, la valeur représentée est 1/a1 + 1/(a1 a2) + 1/(a1 a2 a3), puis le même motif se poursuit pour chaque entrée. Avec une fraction positive, le processus s’arrête : le calculateur fournit donc une liste et une expression finies. Les dénominateurs sont non décroissants, ce qui donne à cette représentation sa structure ordonnée caractéristique. Elle se distingue d’une décomposition égyptienne ordinaire : toutes deux emploient des fractions unitaires, mais le développement d’Engel impose que chaque nouveau terme dépende du produit de tous les dénominateurs déjà choisis. Le résultat présente à la fois la liste brute, pratique pour les calculs ou le code, et les termes développés de la somme de produits. La fraction est d’abord réduite, si bien que 8/26 et 4/13 donnent la même fraction normalisée et le même développement.
Fonctionnement de l’algorithme exact
Le calcul part de la valeur rationnelle positive courante p/q et choisit pour prochain dénominateur le plafond de q/p. Ce choix est effectué par division entière, sans conversion décimale. Le reste est ensuite transformé selon la récurrence d’Engel : p devient a fois p moins q, q est conservé, puis la fraction obtenue est réduite par son plus grand commun diviseur. Lorsque le nouveau numérateur vaut zéro, le développement est terminé ; sinon, les mêmes étapes recommencent. Numérateurs, dénominateurs, plafonds, produits et réductions utilisent des entiers en précision arbitraire. La réponse reste donc exacte même au-delà de la plage des entiers sûrs de JavaScript. L’implémentation refuse les textes mal formés, zéro, les valeurs négatives et un dénominateur nul au lieu de deviner l’intention. La taille de l’entrée et le nombre de termes sont également bornés pour préserver une exécution prévisible. Une même fraction valide produit ainsi toujours les mêmes données mathématiques dans le navigateur et via l’API.
Lire et exploiter le résultat
Consultez d’abord le champ des dénominateurs lorsque vous recherchez la suite canonique d’Engel. Ses éléments sont des chaînes afin que les très grands entiers restent exacts dans les systèmes JSON incapables de représenter tous les nombres sans perte. Le champ de longueur indique le nombre de dénominateurs, donc le nombre de fractions unitaires. Le champ du développement multiplie cumulativement les dénominateurs choisis et affiche chaque inverse, ce qui permet de contrôler séparément la somme avec une arithmétique rationnelle. Pour l’enseignement, comparez chaque dénominateur à la règle du plafond et calculez le reste après chaque étape. Pour les tests logiciels, utilisez la fraction normalisée et le tableau des dénominateurs comme références stables, en incluant des entrées équivalentes non réduites afin de vérifier la normalisation. Cette capacité accepte uniquement les fractions positives : elle ne développe pas un nombre décimal irrationnel à l’infini, n’interprète pas les nombres mixtes et n’approxime pas une valeur flottante. Via l’API, chaque requête coûte $0.002. Le navigateur et l’API partagent le même solveur pur.
Cas d’usage
Vérifier un exercice de théorie des nombres
Comparez une suite d’Engel calculée à la main avec le résultat exact et examinez les termes issus des produits cumulés.
Créer des vecteurs de test déterministes
Produisez des résultats attendus stables pour des bibliothèques d’arithmétique rationnelle sans approximation flottante.
Présenter les représentations rationnelles
Montrez comment la récurrence du plafond transforme une fraction positive en une somme de produits ordonnée.
Questions fréquentes
Quel format d’entrée est accepté ?
Utilisez deux entiers positifs en base 10 séparés par une barre oblique, par exemple 4/13. Les espaces et un signe plus facultatif sont acceptés.
Puis-je saisir zéro ou une fraction négative ?
Non. Une entrée dont le numérateur ou le dénominateur n’est pas positif renvoie une erreur d’entrée non valide.
Pourquoi les dénominateurs sont-ils fournis sous forme de chaînes ?
Les chaînes conservent exactement les entiers en précision arbitraire lorsque le résultat est encodé en JSON.
Est-ce identique à une décomposition en fractions égyptiennes ?
Pas exactement. Les termes d’Engel ont des dénominateurs formés par les produits cumulés d’une suite non décroissante, ce qui ajoute une contrainte structurelle.
Le calculateur utilise-t-il des approximations décimales ?
Non. L’analyse, les plafonds, les réductions par plus grand commun diviseur et les produits emploient une arithmétique entière exacte.
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/engel-expansion \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"fraction":"4/13"}'const res = await fetch("https://api.kit.forhosting.com/numth/engel-expansion", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"fraction": "4/13"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/engel-expansion",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"fraction": "4/13"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/engel-expansion", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"fraction":"4/13"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"fraction":"4/13"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/engel-expansion", 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
{
"fraction": "4/13"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.engel_expansion",
"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. |