Calculateur de répartition des sièges Sainte-Laguë gratuit
Avec 5000, 3000 et 2000 voix et 5 sièges à pourvoir, la méthode Sainte-Laguë attribue 3, 1 et 1 sièges aux trois partis. Saisissez les voix de chaque parti et le nombre de sièges pour voir qui gagne chaque siège, et avec quel quotient. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Répartit les sièges parlementaires par la méthode des plus fortes moyennes de Sainte-Laguë (Webster), avec premier diviseur modifié facultatif. Gratuit, déterministe et confidentiel dans votre navigateur. Aucun compte requis.
Comment la méthode Sainte-Laguë répartit les sièges
Sainte-Laguë, aussi appelée méthode Webster, est une méthode de la plus forte moyenne : les sièges sont attribués un par un, et chacun revient au parti qui a le quotient le plus élevé à ce moment-là. Le quotient d'un parti est égal à ses voix divisées par le double des sièges qu'il détient déjà plus un ; les diviseurs sont donc 1, 3, 5, 7, et ainsi de suite. Avec 5000, 3000 et 2000 voix et 5 sièges, les trois premiers vont à A, B et C avec la totalité de leurs voix ; A remporte ensuite le quatrième avec 5000 divisé par 3 et le cinquième avec un quotient de 1000. Résultat : 3, 1 et 1.
La variante modifiée et les erreurs courantes
La variante modifiée divise les voix de chaque parti par 1,4 au lieu de 1 pour son premier siège, ce qui rend ce siège plus difficile à obtenir ; les diviseurs suivants ne changent pas. Quand on calcule à la main, l'erreur la plus fréquente consiste à diviser par 2, 3 et 4 au lieu de 3, 5 et 7 après chaque siège gagné, ce qui revient à appliquer une autre méthode. Une autre consiste à oublier de recalculer le quotient du gagnant après chaque siège. Le calculateur affiche chaque siège avec son gagnant et son quotient, pour vérifier chaque étape.
Entrées et sorties
Fournissez les champs indiqués dans le schéma d'entrée. Les champs requis doivent être présents et correctement typés. Les champs facultatifs utilisent les valeurs par défaut documentées.
La charge utile de succès inclut toujours les champs de résultat principaux nommés dans le schéma de sortie, afin que les clients puissent lier leurs indicateurs d'interface sans deviner. Les messages d'erreur utilisent des sous-chaînes de correspondance stables en anglais pour le harnais. Répartit les sièges parlementaires par la méthode des plus fortes moyennes de Sainte-Laguë (Webster), avec premier diviseur modifié facultatif.
Cas d’usage
Devoirs et examens
Vérifiez rapidement les problèmes quantitatifs classiques avec des réponses stables et reproductibles.
Automatisation
Appelez la même fonction pure depuis vos scripts sans installer de tableur ni de CAS.
Questions fréquentes
Est-ce gratuit ?
Oui. Le tier A s'exécute entièrement dans votre navigateur, sans compte.
Cela sollicite-t-il le réseau ?
Non. Le moteur parse conserve tout sur votre appareil.
Les résultats sont-ils stables ?
Oui. Des calculs déterministes et des exemples goldens figent le contrat.
Qu'est-ce que la méthode Sainte-Laguë modifiée ?
C'est la même méthode avec un changement : le premier siège de chaque parti se calcule en divisant ses voix par 1,4 au lieu de 1. Ce premier siège devient plus difficile à obtenir, tandis que les diviseurs suivants restent 3, 5, 7 et ainsi de suite.
Peut-on voir comment chaque siège a été attribué ?
Oui. En plus de la répartition finale, le calculateur liste chaque siège dans l'ordre, avec le parti qui l'a obtenu et le quotient correspondant, pour vérifier pas à pas un exercice ou un résultat publié.
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/sainte-lague \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"votes":[5000,3000,2000],"seats":5}'const res = await fetch("https://api.kit.forhosting.com/math/sainte-lague", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"votes": [
5000,
3000,
2000
],
"seats": 5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/sainte-lague",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"votes": [
5000,
3000,
2000
],
"seats": 5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/sainte-lague", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"votes":[5000,3000,2000],"seats":5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"votes":[5000,3000,2000],"seats":5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/sainte-lague", 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
{
"votes": [
5000,
3000,
2000
],
"seats": 5
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.sainte_lague",
"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 ça fonctionne
Chaque siège est attribué au parti dont le quotient voix/(2s+1) est le plus élevé (ou 1,4 pour le premier siège en mode modifié). L'implémentation est entièrement déterministe et s'exécute gratuitement dans le navigateur avec la même fonction pure que celle du chemin API. Les entrées sont validées avant tout calcul, de sorte que les types erronés et les valeurs out-of-range deviennent des erreurs invalid_input explicites plutôt que des résultats NaN silencieux. L'implémentation est entièrement déterministe et s'exécute gratuitement dans le navigateur avec la même fonction pure que celle du chemin API. Les entrées sont validées avant tout calcul, de sorte que les types erronés et les valeurs out-of-range deviennent des erreurs invalid_input explicites plutôt que des résultats NaN silencieux.
Entrées et sorties
L'implémentation est entièrement déterministe et s'exécute gratuitement dans le navigateur avec la même fonction pure que celle du chemin API. Les entrées sont validées avant tout calcul, de sorte que les types erronés et les valeurs out-of-range deviennent des erreurs invalid_input explicites plutôt que des résultats NaN silencieux. L'implémentation est entièrement déterministe et s'exécute gratuitement dans le navigateur avec la même fonction pure que celle du chemin API. Les entrées sont validées avant tout calcul, de sorte que les types erronés et les valeurs out-of-range deviennent des erreurs invalid_input explicites plutôt que des résultats NaN silencieux.
Cas limites et restrictions
Exige au moins deux partis et un nombre de sièges entier positif. Les plages vides ou contradictoires sont rejetées d'emblée. Examinez les exemples goldens pour les chemins canoniques de succès et d'erreur avant toute intégration. Les valeurs intermédiaires extrêmement grandes qui débordent l'IEEE-754 deviennent une erreur out-of-range plutôt que des champs nuls. L'implémentation est entièrement déterministe et s'exécute gratuitement dans le navigateur avec la même fonction pure que celle du chemin API. Les entrées sont validées avant tout calcul, de sorte que les types erronés et les valeurs out-of-range deviennent des erreurs invalid_input explicites plutôt que des résultats NaN silencieux. L'implémentation est entièrement déterministe et s'exécute gratuitement dans le navigateur avec la même fonction pure que celle du chemin API. Les entrées sont validées avant tout calcul, de sorte que les types erronés et les valeurs out-of-range deviennent des erreurs invalid_input explicites plutôt que des résultats NaN silencieux.
Cas d'intégration
Démonstrations pédagogiques
Présentez des exemples résolus avec des fixtures goldens qui correspondent au widget gratuit et à l'API.
Questions techniques
Et si ma saisie est invalide ?
Vous recevez invalid_input accompagné d'un message clair en anglais.
Qui est l'auteur de cette capacité ?
samurai, sur l'atelier KIT de ForHosting.