Répartition des sièges au plus fort reste gratuit
Transformez des voix en sièges entiers au plus fort reste : 416 000, 338 000 et 246 000 voix pour 10 sièges avec le quotient de Hare donnent 4, 3 et 3 sièges. Hare ou Droop, au choix, avec le reste de chaque liste. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Voix par parti
- 416 000, 338 000, 246 000
- Sièges à répartir
- 10
- Noms des partis (facultatif)
- A, B, C
- Méthode du quotient
- Hare (voix totales ÷ sièges)
- Méthode du quotient
- Hare
- Quotient électoral
- 100 000
Répartit les sièges par la méthode du plus fort reste (Hamilton) avec un quota Hare ou Droop. Gratuit, déterministe et confidentiel dans votre navigateur. Aucun compte requis. Aucun compte requis.
Comment les sièges se répartissent au plus fort reste
Les systèmes proportionnels ont besoin de sièges entiers, mais les voix ne se divisent presque jamais exactement. La méthode du plus fort reste, appelée aussi méthode de Hamilton, règle ce problème en deux tours. Elle fixe d'abord un quotient, le nombre de voix qui vaut un siège, et donne à chaque liste autant de sièges qu'elle réunit de quotients complets, en arrondissant toujours vers le bas. Les sièges encore libres vont ensuite un par un aux listes qui ont les plus forts restes. Dans l'exemple, 10 sièges se partagent entre 416 000, 338 000 et 246 000 voix. Avec un quotient de Hare de 100 000, le premier tour donne 4, 3 et 2 sièges, et il en reste un. Les restes valent 0,16, 0,38 et 0,46 : le dernier siège revient à la troisième liste, et la répartition finale est 4, 3 et 3.
Les erreurs à éviter pour vérifier une répartition
La plupart des erreurs surviennent au premier tour. Arrondir à l'entier le plus proche au lieu d'arrondir vers le bas fausse la méthode, car ce tour ne peut distribuer que des quotients complets. Donner les sièges restants aux listes les plus fortes plutôt qu'aux plus forts restes change le résultat, comme le montre la troisième liste de l'exemple. Le quotient compte aussi : vérifiez si vos règles demandent celui de Hare ou celui de Droop avant de comparer des résultats. Le calculateur est utile pour les devoirs et les examens sur les modes de scrutin, quand vous voulez une réponse stable à laquelle comparer la vôtre.
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 par la méthode du plus fort reste (Hamilton) avec un quota Hare ou Droop.
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.
Comment la méthode du plus fort reste attribue-t-elle les sièges ?
Chaque liste reçoit d'abord un siège par quotient complet de voix, en arrondissant toujours vers le bas. Les sièges restants sont ensuite attribués un par un aux listes qui ont les plus forts restes, jusqu'à ce que tous soient pourvus.
Pourquoi une liste avec moins de quotients complets obtient-elle le dernier siège ?
Parce que les sièges restants suivent les restes, pas le total des voix. Dans l'exemple, la troisième liste n'a que 2 quotients complets, mais son reste de 0,46 est le plus fort : elle obtient le dernier des 10 sièges et finit avec 3.
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/largest-remainder \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"votes":[416000,338000,246000],"seats":10}'const res = await fetch("https://api.kit.forhosting.com/math/largest-remainder", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"votes": [
416000,
338000,
246000
],
"seats": 10
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/largest-remainder",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"votes": [
416000,
338000,
246000
],
"seats": 10
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/largest-remainder", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"votes":[416000,338000,246000],"seats":10}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"votes":[416000,338000,246000],"seats":10}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/largest-remainder", 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": [
416000,
338000,
246000
],
"seats": 10
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.largest_remainder",
"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 parti obtient floor(voix/quota) sièges, puis les sièges restants vont aux plus forts restes fractionnaires, dans l'ordre. 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. 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
Rejette un total de voix nul et les noms de quota invalides. 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.