Probabilidad de suma de dados como máximo
Esta calculadora determina la probabilidad acumulada de que varios dados justos e idénticos sumen un valor elegido o menos.
Ejecutar — gratis
En lugar de estimar el resultado mediante tiradas simuladas, cuenta todos los resultados posibles con aritmética entera exacta. Indique el número de dados, las caras de cada dado y un límite inclusivo. Recibirá los casos favorables, el total de casos, una fracción reducida, una probabilidad decimal y un porcentaje, datos útiles para diseñar juegos, enseñar probabilidad y crear motores de reglas fiables.
Comprenda el suceso que se calcula
Un suceso «como máximo» incluye tanto el límite indicado como todos los totales inferiores. Por ejemplo, con dos dados de seis caras y un límite de siete se calcula P(suma ≤ 7); por tanto, son favorables los totales dos, tres, cuatro, cinco, seis y siete. No es lo mismo que pedir exactamente siete, donde solo cuenta un total, ni que pedir siete o más, que comprende desde siete hasta doce. Se supone que cada dado es justo, independiente y que sus caras llevan enteros consecutivos desde uno hasta el número de caras elegido. Al lanzar n dados de s caras hay s^n resultados ordenados equiprobables. La calculadora cuenta cuántos quedan entre el mínimo posible y el límite inclusivo, y divide esa cantidad por el tamaño total del espacio muestral. Un límite inferior al mínimo devuelve correctamente probabilidad cero; uno igual o superior al máximo devuelve probabilidad uno. Son respuestas válidas de la distribución acumulada, no errores, por lo que la herramienta admite sin problemas límites generados de forma dinámica por otras reglas.
Cómo funciona el recuento acumulado exacto
El cálculo emplea programación dinámica acotada, no ensayos aleatorios. Parte de una única forma de obtener cero antes de lanzar dado alguno. Para cada dado crea la siguiente tabla de recuentos: añade cada cara permitida a todos los totales que ya pueden alcanzarse. Una ventana deslizante combina esas contribuciones con eficiencia, y todos los recuentos usan enteros de precisión arbitraria para que ningún número de resultados posibles se redondee. Tras procesar todos los dados, el motor suma los recuentos de los totales que no superan el límite seleccionado. El número total de resultados se obtiene de manera independiente elevando el número de caras al número de dados. El máximo común divisor reduce la razón entre casos favorables y totales a su fracción exacta más simple; una división entera determinista genera además cadenas decimales y porcentuales legibles. Este método produce siempre la misma respuesta y evita el error de muestreo propio de Monte Carlo. Incluso una simulación larga puede omitir resultados raros o variar entre ejecuciones; la recurrencia exacta no presenta ese problema. Los límites publicados acotan memoria y tiempo, pero cubren dados habituales y conjuntos personalizados de gran tamaño.
Use el resultado en juegos, clases y software
Indique en dice cuántos dados idénticos se lanzan, en sides cuántas caras tiene cada uno y en at_most el límite inclusivo. Consulte probability_fraction cuando necesite un valor racional exacto, probability para un decimal compacto y probability_percent para mostrar un porcentaje. favorable_outcomes y total_outcomes revelan el recuento subyacente y se devuelven como cadenas para conservar enteros grandes sin pérdida dentro de JSON. Quien diseña juegos puede comparar la frecuencia con la que un grupo de dados queda bajo un tope, calcular la activación de una regla de tirada baja o ajustar un umbral antes de publicar. El profesorado puede explicar distribuciones acumuladas y contrastar la respuesta exacta con una simulación en clase. Los equipos de desarrollo pueden fijar respuestas deterministas en pruebas o llamar al cálculo desde un servicio de puntuación sin mantener tablas. El navegador ejecuta localmente la misma función pura. Cada uso automatizado de la API cuesta $0.002. No se admiten dados ponderados, explosivos, repetidos ni de tamaños mezclados, pues esas reglas cambian el espacio muestral y requieren otro modelo.
Qué puede hacer con ella
Equilibre una mecánica de tirada baja
Mida la probabilidad exacta de que un grupo de dados no supere el umbral de activación antes de cerrar una regla de mesa.
Enseñe probabilidad acumulada
Muestre cómo se suman los casos favorables de todos los totales hasta el límite seleccionado, incluido este.
Pruebe un motor de reglas determinista
Utilice fracciones y recuentos estables como casos de prueba para software que evalúa límites con dados justos ordinarios.
Preguntas frecuentes
¿«Como máximo» incluye el valor elegido?
Sí. Significa menor o igual que el límite, de modo que el total elegido forma parte de los casos favorables.
¿Los resultados son exactos o simulados?
Son exactos. El algoritmo cuenta resultados con enteros de precisión arbitraria y no utiliza azar ni muestreo.
¿Qué clase de dados presupone la calculadora?
Presupone dados idénticos, independientes y justos, con caras numeradas consecutivamente desde 1 hasta la cantidad seleccionada.
¿Qué ocurre si el límite no puede obtenerse?
Un límite inferior a la suma mínima devuelve probabilidad cero; uno igual o superior a la máxima devuelve probabilidad uno.
¿Cuánto cuesta un cálculo mediante la API?
Cada elemento procesado correctamente mediante la API cuesta $0.002. El mismo cálculo determinista está disponible en el navegador.
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/hobby/game-dice-sum-at-most \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"dice":2,"sides":6,"at_most":7}'const res = await fetch("https://api.kit.forhosting.com/hobby/game-dice-sum-at-most", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"dice": 2,
"sides": 6,
"at_most": 7
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/hobby/game-dice-sum-at-most",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"dice": 2,
"sides": 6,
"at_most": 7
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/hobby/game-dice-sum-at-most", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"dice":2,"sides":6,"at_most":7}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"dice":2,"sides":6,"at_most":7}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/hobby/game-dice-sum-at-most", 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
{
"dice": 2,
"sides": 6,
"at_most": 7
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "hobby.game_dice_sum_at_most",
"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.
Límites
max_dice | 50 |
max_sides | 100 |
max_sum | 5000 |
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. |