Probabilidad de rachas de caras al lanzar monedas
Esta calculadora determina la probabilidad de que aparezca al menos una racha de caras consecutivas de la longitud indicada dentro de un número dado de lanzamientos de una moneda equilibrada.
Ejecutar — gratis
Introduzca el total de lanzamientos y la longitud de la racha; el cálculo evalúa cómo puede evolucionar cada secuencia sin recurrir a simulaciones. El resultado incluye tanto la probabilidad del suceso como la de su complemento, por lo que resulta útil para juegos, clases de probabilidad, planificación de experimentos y comprobaciones de la intuición sobre ensayos independientes repetidos.
Qué mide la calculadora
El suceso medido es la aparición, en cualquier posición, de al menos una racha ininterrumpida con la longitud solicitada. Puede comenzar en el primer lanzamiento, terminar en el último o estar entre cruces. Las rachas más largas también cuentan: cuatro caras consecutivas satisfacen una solicitud de tres porque contienen grupos solapados de tres caras. La calculadora no pregunta por un número total exacto de caras ni exige que la racha ocurra una sola vez; esas son preguntas distintas. Se supone que todos los lanzamientos son independientes y que la moneda es equilibrada, con probabilidad de un medio para cada lado. Por ejemplo, diez lanzamientos y una racha objetivo de tres preguntan si aparece CCC en cualquier posición. Las demás caras no importan. Si la racha solicitada supera el total de lanzamientos, no cabe en el experimento y la capacidad devuelve un error de entrada para que la configuración incoherente no pase inadvertida.
Cómo se calcula la probabilidad
Sumar las probabilidades de que una racha empiece en cada posición produce un resultado incorrecto porque las posibilidades se solapan. En CCCC, por ejemplo, una racha de tres comienza en dos posiciones, pero el resultado solo debe contarse una vez. La calculadora evita esa duplicación mediante programación dinámica. Después de cada lanzamiento conserva la probabilidad de que el objetivo aún no haya aparecido y de que la secuencia termine con cero, una, dos o más caras consecutivas, sin alcanzar la longitud objetivo. Una cruz devuelve todos los caminos supervivientes al estado de cero; una cara los hace avanzar, y los que alcanzan el objetivo salen de los estados sin racha. Al terminar, se suman las probabilidades supervivientes para obtener la posibilidad de no ver nunca la racha. Su complemento es la probabilidad solicitada. El método evalúa el suceso directamente, es determinista y no presenta el error de muestreo propio de una simulación Monte Carlo.
Cómo interpretar y utilizar el resultado
La respuesta expresa la probabilidad entre cero y uno, el porcentaje equivalente y probability_no_streak, que representa el suceso complementario. Un valor de 0.5078125 indica que la racha aparece aproximadamente en el 50.78125 por ciento de los experimentos bajo estas condiciones; no predice lo que ocurrirá en una secuencia concreta. Al repetir muchas veces el experimento, la frecuencia observada debería acercarse al valor calculado, aunque la variación aleatoria es normal. Use el complemento para estudiar la ausencia de rachas, por ejemplo en un juego. Compare varias longitudes para comprobar cómo los patrones poco frecuentes se vuelven plausibles al aumentar las oportunidades. El modelo exige una moneda equilibrada y lanzamientos independientes; una moneda sesgada, dependencias, reglas de parada o rachas de cualquiera de los dos lados requieren otro cálculo. El límite de mil lanzamientos mantiene ágil el mismo algoritmo puro en el navegador y en la API. Cada llamada automatizada cuesta $0.002; la página también permite ejecutarlo localmente.
Qué puede hacer con ella
Comprobar una lección de probabilidad
Compare su intuición con la probabilidad exacta de observar caras consecutivas en un experimento fijo.
Diseñar una regla de juego
Estime con qué frecuencia se activará durante una partida una bonificación basada en varias caras seguidas.
Planificar ensayos repetidos
Elija un número de lanzamientos que haga suficientemente común una racha objetivo sin utilizar simulaciones.
Preguntas frecuentes
¿Qué significa al menos una racha?
Significa que la secuencia solicitada aparece una o más veces en cualquier lugar. Una racha más larga también la contiene y cuenta.
¿Calcula exactamente ese número de caras?
No. Calcula caras consecutivas sin importar cuántas aparezcan fuera de la racha. Para un total exacto, use una calculadora binomial.
¿Por qué la racha no puede superar los lanzamientos?
La secuencia no cabría en el experimento. La capacidad devuelve un error de entrada para señalar la solicitud incoherente.
¿El resultado procede de una simulación?
No. Un programa dinámico determinista considera las rachas solapadas y obtiene la probabilidad matemática sin muestreo aleatorio.
¿Admite una moneda sesgada y cuánto cuesta la API?
No; cada lado tiene probabilidad de un medio y los lanzamientos son independientes. Cada solicitud a la API cuesta $0.002; también puede usar la calculadora del 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/stat/coin-streak \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"tosses":10,"streak":3}'const res = await fetch("https://api.kit.forhosting.com/stat/coin-streak", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"tosses": 10,
"streak": 3
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/stat/coin-streak",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"tosses": 10,
"streak": 3
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/stat/coin-streak", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"tosses":10,"streak":3}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"tosses":10,"streak":3}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/stat/coin-streak", 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
{
"tosses": 10,
"streak": 3
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "stat.coin_streak",
"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_tosses | 1000 |
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. |