Reparto de escaños por resto mayor gratis
Convierta votos en escaños enteros con el método del resto mayor: 416 000, 338 000 y 246 000 votos para 10 escaños con la cuota Hare dan 4, 3 y 3 escaños. Elija la cuota Hare o la Droop y vea el resto de cada partido. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Votos por partido
- 416 000, 338 000, 246 000
- Escaños a repartir
- 10
- Nombres de los partidos (opcional)
- A, B, C
- Método de cociente
- Hare (votos totales ÷ escaños)
- Método de cociente
- Hare
- Cociente electoral
- 100 000
Reparte escaños por el método del resto mayor (Hamilton) con cociente Hare o Droop. Gratis, determinista y privado en su navegador. Sin necesidad de cuenta. Sin necesidad de cuenta.
Cómo se reparten los escaños por resto mayor
Los sistemas proporcionales necesitan escaños enteros, pero los votos casi nunca se dividen de forma exacta. El método del resto mayor, también llamado de Hamilton, lo resuelve en dos rondas. Primero fija una cuota, la cantidad de votos que vale un escaño, y da a cada partido tantos escaños como cuotas completas reúne, redondeando siempre hacia abajo. Después, los escaños libres van uno a uno a los partidos con los restos más grandes. En el ejemplo se reparten 10 escaños entre 416 000, 338 000 y 246 000 votos. Con una cuota Hare de 100 000, la primera ronda da 4, 3 y 2 escaños y queda uno libre. Los restos son 0,16, 0,38 y 0,46, así que el último escaño va al tercer partido y el reparto final es 4, 3 y 3.
Errores que conviene evitar al comprobar un reparto
La mayoría de los errores ocurre en la primera ronda. Redondear al entero más cercano en lugar de hacia abajo rompe el método, porque esa ronda solo puede entregar cuotas completas. Dar los escaños sobrantes a los partidos más votados en lugar de a los restos más grandes cambia el resultado, como muestra el tercer partido del ejemplo. La cuota también importa: compruebe si sus reglas piden la cuota Hare o la Droop antes de comparar resultados. La calculadora es útil para tareas y exámenes sobre sistemas electorales, cuando usted necesita una respuesta estable con la que contrastar la suya.
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 por el método del resto mayor (Hamilton) con cociente Hare o Droop.
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.
¿Cómo reparte los escaños el método del resto mayor?
Primero cada partido recibe un escaño por cada cuota completa de votos, siempre redondeando hacia abajo. Los escaños que sobran se asignan después, uno a uno, a los partidos con los restos más grandes hasta completar el total.
¿Por qué un partido con menos cuotas completas gana el último escaño?
Porque los escaños sobrantes siguen a los restos, no al total de votos. En el ejemplo el tercer partido solo tiene 2 cuotas completas, pero su resto de 0,46 es el mayor, así que se lleva el último de los 10 escaños y termina con 3.
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/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)Ejemplo de solicitud
{
"votes": [
416000,
338000,
246000
],
"seats": 10
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.largest_remainder",
"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 partido obtiene floor(votos/cociente) escaños y, a continuación, los escaños restantes se asignan por orden a los mayores restos fraccionarios. 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. 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
Rechaza un total de votos igual a cero y los nombres de cociente no válidos. 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.