Formes quadratiques binaires réduites par discriminant
Liste les formes réduites, primitives et définies positives ax² + bxy + cy² d'un discriminant négatif : −23 donne trois formes, [1, 1, 6], [2, −1, 3] et [2, 1, 3], son nombre de classes vaut donc 3. Calcul entier exact uniquement. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Discriminant
- -23
- Quantité
- 3
Ce calculateur répertorie les représentants réduits canoniques des formes quadratiques binaires entières, primitives et définies positives pour un discriminant négatif choisi. Saisissez un discriminant valide afin d’obtenir chaque triplet de coefficients [a, b, c], leur nombre et le discriminant dans le résultat. Le calcul est exact, déterministe et repose sur l’arithmétique entière. Vous pouvez ainsi vérifier des exemples de nombres de classes, préparer des exercices, explorer les classes d’équivalence et contrôler des calculs manuels sans installer de logiciel d’algèbre symbolique ni consulter une base mathématique distante.
Ce que répertorie le calculateur
Une forme quadratique binaire est une expression ax² + bxy + cy² à coefficients entiers. Son discriminant vaut D = b² − 4ac. Lorsque D est négatif et a positif, la forme est définie positive.
Le calculateur renvoie les formes primitives, pour lesquelles gcd(a, b, c) = 1, et choisit les représentants réduits vérifiant |b| ≤ a ≤ c. Aux frontières, il applique la convention b ≥ 0 si |b| = a ou a = c. Ces conditions rendent la liste finie et donnent un représentant standard de chaque classe d’équivalence propre.
Chaque résultat présente les coefficients séparément et sous la notation [a, b, c]. Le nombre indiqué correspond aux formes primitives réduites trouvées pour le discriminant fourni.
Choisir et valider un discriminant
Saisissez un entier négatif congru à 0 ou 1 modulo 4. Cette condition est nécessaire puisque b² vaut toujours 0 ou 1 modulo 4. Ainsi, −23 est valide car il vaut 1 modulo 4, tandis que −22 n’est pas un discriminant quadratique.
Le calculateur refuse zéro, les valeurs positives, fractionnaires ou non sûres et celles hors de la limite publiée. Le discriminant ne doit pas nécessairement être fondamental : le filtre des formes primitives s’applique toujours. Certains discriminants valides n’ont aucun représentant primitif ; le résultat contient alors une liste vide et le nombre zéro, sans signaler d’erreur.
Une énumération exacte et reproductible
L’algorithme découle directement de la théorie de la réduction. Pour une forme réduite définie positive, les inégalités donnent a ≤ √(|D|/3), donc une borne finie pour la boucle externe. Pour chaque a possible, le calculateur teste les entiers b de −a à a, respecte la parité requise et calcule c par (b² − D)/(4a).
Un candidat est conservé uniquement si c est entier, si a ≤ c, si la convention de signe aux frontières est respectée et si les trois coefficients ont un plus grand commun diviseur égal à un. Tous les tests décisifs utilisent une arithmétique entière exacte. Les résultats sont triés par a croissant, puis par b croissant.
Cas d’usage
Vérifier un exercice de nombre de classes
Comparez une liste calculée à la main à une énumération complète et ordonnée de manière cohérente.
Explorer les discriminants
Observez l’évolution des triplets et des nombres entre discriminants négatifs fondamentaux ou non.
Questions fréquentes
Quelles entrées sont valides ?
Utilisez un entier négatif congru à 0 ou 1 modulo 4 et compris dans la plage publiée.
Que signifie primitive ?
Une forme [a, b, c] est primitive lorsque le plus grand commun diviseur de ses trois coefficients vaut un.
Que signifie réduite ici ?
Le résultat vérifie |b| ≤ a ≤ c, avec b non négatif lorsqu’une égalité de frontière se produit.
Les doublons équivalents sont-ils inclus ?
Non. Les conditions de réduction choisissent un représentant par classe d’équivalence propre.
Un discriminant valide peut-il ne donner aucune forme ?
Oui. Un discriminant valide non fondamental peut ne posséder aucun représentant primitif ; une liste vide est alors renvoyée, sans erreur.
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/reduced-binary-forms \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"discriminant":-23}'const res = await fetch("https://api.kit.forhosting.com/numth/reduced-binary-forms", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"discriminant": -23
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/reduced-binary-forms",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"discriminant": -23
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/reduced-binary-forms", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"discriminant":-23}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"discriminant":-23}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/reduced-binary-forms", 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
{
"discriminant": -23
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.reduced_binary_forms",
"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_discriminant | -10000000 |
max_discriminant | -3 |
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
Choisir et valider un discriminant
L’API accepte aussi l’alias court d, même si discriminant reste plus clair dans du code enregistré.
Une énumération exacte et reproductible
Sans réseau, hasard, horloge, base de données ni table cachée, le calcul fonctionne de façon identique dans le navigateur et via l’API pour $0.002 par requête.
Cas d'intégration
Créer des jeux d’essai exacts
Produisez des données déterministes pour les cours de théorie des nombres, les scripts et les tests de régression.
Questions techniques
Quel est le tarif ?
Vous pouvez l’exécuter gratuitement dans le navigateur de cette page ou payer $0.002 par requête API.