Calculadora de reparto de escaños Sainte-Laguë gratis
Con 5000, 3000 y 2000 votos y 5 escaños en juego, el método Sainte-Laguë da a los tres partidos 3, 1 y 1 escaños. Escriba los votos de cada partido y el número de escaños, y vea quién gana cada escaño y con qué cociente. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Reparte escaños parlamentarios por el método de las mayores medias de Sainte-Laguë (Webster) con un primer divisor modificado opcional. Gratis, determinista y privado en su navegador. Sin necesidad de cuenta.
Cómo reparte los escaños el método Sainte-Laguë
Sainte-Laguë, también llamado método Webster, es un sistema de mayores promedios: los escaños se asignan de uno en uno y cada uno va al partido con el cociente más alto en ese momento. El cociente de un partido son sus votos divididos entre el doble de los escaños que ya tiene más uno, así que los divisores son 1, 3, 5, 7 y así sucesivamente. Con 5000, 3000 y 2000 votos y 5 escaños, los tres primeros van a A, B y C con sus votos completos; después A gana el cuarto con 5000 dividido entre 3 y el quinto con un cociente de 1000. El resultado es 3, 1 y 1.
La variante modificada y los errores habituales
La variante modificada divide los votos de cada partido entre 1,4 en lugar de entre 1 para su primer escaño, lo que hace más difícil conseguirlo; los divisores siguientes no cambian. Al hacer la cuenta a mano, el error más frecuente es dividir entre 2, 3 y 4 en vez de entre 3, 5 y 7 cuando un partido gana un escaño, lo que convierte el cálculo en otro método. Otro es olvidar recalcular el cociente del ganador después de cada escaño. La calculadora muestra cada escaño con su ganador y su cociente, para revisar cada paso.
Entradas y salidas
Indique los campos que enumera el esquema de entrada. Los campos obligatorios deben estar presentes y con el tipo correcto. Los campos opcionales usan los valores por defecto documentados.
La respuesta de éxito siempre incluye los campos de resultado principales que nombra el esquema de salida, de modo que los clientes puedan enlazar las métricas de la interfaz sin adivinar. Los mensajes de error usan subcadenas de coincidencia estables en inglés para el harness. Reparte escaños parlamentarios por el método de las mayores medias de Sainte-Laguë (Webster) con un primer divisor modificado opcional.
Qué puede hacer con ella
Tareas y exámenes
Compruebe con rapidez problemas cuantitativos clásicos con respuestas estables y reproducibles.
Automatización
Invoque la misma función pura desde sus scripts sin instalar una hoja de cálculo ni un CAS.
Preguntas frecuentes
¿Esto es gratis?
Sí. El tier A se ejecuta íntegramente en su navegador sin necesidad de cuenta.
¿Realiza llamadas de red?
No. El motor parse mantiene todo en su dispositivo.
¿Quién es el autor de esta capacidad?
samurai en el taller del KIT de ForHosting.
¿Qué es el método Sainte-Laguë modificado?
Es el mismo método con un cambio: el primer escaño de cada partido se calcula dividiendo sus votos entre 1,4 en lugar de entre 1. Eso hace más difícil ganar el primer escaño, mientras que los divisores siguientes siguen siendo 3, 5, 7 y así sucesivamente.
¿Puedo ver cómo se decidió cada escaño?
Sí. Además del reparto final, la calculadora enumera cada escaño en orden, con el partido que lo ganó y el cociente con el que lo hizo, de modo que un ejercicio o un resultado publicado se pueden comprobar paso a paso.
Herramientas relacionadas
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su 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)Ejemplo de solicitud
{
"votes": [
5000,
3000,
2000
],
"seats": 5
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.sainte_lague",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
Cómo funciona
Cada escaño se otorga al partido con el mayor cociente votos/(2s+1) (o 1,4 para el primer escaño en la variante modificada). La implementación es totalmente determinista y se ejecuta gratis en el navegador con la misma función pura que la ruta del API. Las entradas se validan antes de cualquier operación aritmética, de modo que los tipos incorrectos y los valores out-of-range se convierten en errores invalid_input claros en lugar de resultados NaN silenciosos. La implementación es totalmente determinista y se ejecuta gratis en el navegador con la misma función pura que la ruta del API. Las entradas se validan antes de cualquier operación aritmética, de modo que los tipos incorrectos y los valores out-of-range se convierten en errores invalid_input claros en lugar de resultados NaN silenciosos.
Entradas y salidas
La implementación es totalmente determinista y se ejecuta gratis en el navegador con la misma función pura que la ruta del API. Las entradas se validan antes de cualquier operación aritmética, de modo que los tipos incorrectos y los valores out-of-range se convierten en errores invalid_input claros en lugar de resultados NaN silenciosos. La implementación es totalmente determinista y se ejecuta gratis en el navegador con la misma función pura que la ruta del API. Las entradas se validan antes de cualquier operación aritmética, de modo que los tipos incorrectos y los valores out-of-range se convierten en errores invalid_input claros en lugar de resultados NaN silenciosos.
Casos límite y restricciones
Exige al menos dos partidos y un número de escaños entero positivo. Los rangos vacíos o contradictorios se rechazan de inmediato. Los valores intermedios extremadamente grandes que desbordan IEEE-754 producen un error out-of-range en lugar de campos nulos. La implementación es totalmente determinista y se ejecuta gratis en el navegador con la misma función pura que la ruta del API. Las entradas se validan antes de cualquier operación aritmética, de modo que los tipos incorrectos y los valores out-of-range se convierten en errores invalid_input claros en lugar de resultados NaN silenciosos. La implementación es totalmente determinista y se ejecuta gratis en el navegador con la misma función pura que la ruta del API. Las entradas se validan antes de cualquier operación aritmética, de modo que los tipos incorrectos y los valores out-of-range se convierten en errores invalid_input claros en lugar de resultados NaN silenciosos.
Casos de integración
Demostraciones didácticas
Muestre ejemplos resueltos con fixtures golden que coinciden con el widget gratuito y con el API.
Preguntas técnicas
¿Qué ocurre si mi entrada no es válida?
Recibe invalid_input con un mensaje claro en inglés.
¿Los resultados son estables?
Sí. Las matemáticas deterministas y los ejemplos golden congelan el contrato.