Primera entrada: lanzamientos de monedas #5
13 changed files with 247 additions and 0 deletions
179
content/lanzamientos-de-monedas.md
Normal file
179
content/lanzamientos-de-monedas.md
Normal file
|
|
@ -0,0 +1,179 @@
|
|||
+++
|
||||
title = "Lanzamientos de Monedas"
|
||||
date = 2025-07-28
|
||||
draft = true
|
||||
[taxonomies]
|
||||
t = ["Probabilidades", "Monedas", "Distribución Geométrica", "Distribución Binomial"]
|
||||
[extra]
|
||||
author = "Felipe"
|
||||
image = "img/placeholder.png"
|
||||
image_webp = "img/placeholder.webp"
|
||||
alt = ""
|
||||
+++
|
||||
|
||||
Toda partida de cartas Pokémon inicia con un lanzamiento de moneda (o de dado en su
|
||||
reemplazo). Probablemente, todos sabemos que la probabilidad de que salga cualquiera
|
||||
de los resultado es $\frac{1}{2}$, suponiendo que la moneda o el dado no están
|
||||
trucados.
|
||||
|
||||
Un sólo lanzamiento de moneda entonces no resulta muy interesante, pero hay efectos
|
||||
que requieren más de un lanzamiento, sobres los cuáles nos interesará preguntarnos
|
||||
ciertas cosas.
|
||||
|
||||
# Lanza una moneda hasta que salga cruz
|
||||
|
||||
{{ ptcg_card(id="beartic-blk-la", display=true) }}
|
||||
|
||||
El primer de estos efectos es el del tipo *"Lanza 1 moneda hasta que salga cruz. Por
|
||||
cada cara, haz cierta cosa"*. En el caso del **Beartic** que se muestra arriba, se
|
||||
hace cierta cantidad de daño por cierta cara.
|
||||
|
||||
La primera pregunta que responderemos será ¿cuál es la probabilidad de sacar
|
||||
exactamente $k$ caras? Como dejamos de lanzar monedas al obtener cruz, esto equivale
|
||||
a ¿cuál es la probabilidad de sacar $k$ caras seguidas por una cruz? Como solo hay
|
||||
una secuencia de resultados que nos interesa, solo debemos calcular cuántas
|
||||
secuencias posibles de resultados hay al lanzar $k + 1$ monedas (para obtener $k$
|
||||
caras y $1$ cruz) y usar la fórmula básica de las probabilidades
|
||||
$$\text{Probabilidad} = \frac{\text{Número de casos favorables}}{\text{Número de casos totales}}$$
|
||||
Para la primera moneda, tenemos dos opciones posibles. Para dos monedas, por cada una
|
||||
de las opciones de la primera moneda, tenemos dos opciones para la segunda. Así, cada
|
||||
vez que agregamos una moneda, se duplican la cantidad de secuencias. Por lo tanto, la
|
||||
cantidad de secuencias de $k + 1$ lanzamientos de monedas es $2^{k+1}$ y en
|
||||
consecuencia, la probabilidad de obtener $k$ caras es $\frac{1}{2^{k+1}}$.
|
||||
|
||||
Ahora nos preguntamos, ¿cuál es el número promedio de caras que voy a obtener? Para
|
||||
ello, llamaremos $p_k$ a la probabilidad de obtener exactamente $k$ caras y
|
||||
calcularemos la siguiente suma
|
||||
$$S = 0\cdot p_0 + 1\cdot p_1 + 2\cdot p_2 + \dots + k\cdot p_k + (k+1)\cdot p_{k+1} + \dots$$
|
||||
Con el cálculo que habíamos hecho antes, sabemos que $p_k = \frac{1}{2^{k+1}}$, por
|
||||
lo que
|
||||
$$S = \frac{0}{2} + \frac{1}{2^2} + \frac{2}{2^3} + \dots + \frac{k}{2^{k+1}} + \frac{k+1}{2^{k+2}} + \dots$$
|
||||
Si multiplicamos la por $2$, tenemos que
|
||||
$$
|
||||
\begin{aligned}
|
||||
2S &= 2\cdot\frac{1}{2^2} + 2\cdot\frac{2}{2^3} + \dots + 2\cdot\frac{k}{2^{k+1}} + 2\cdot\frac{k+1}{2^{k+2}} + \dots \\\\
|
||||
&= \frac{1}{2} + \frac{2}{2^2} + \frac{3}{2^3} + \dots + \frac{k}{2^k} + \frac{k+1}{2^{k+1}} + \dots
|
||||
\end{aligned}
|
||||
$$
|
||||
Ahora, si restamos la última ecuación con la primera, tenemos que
|
||||
$$
|
||||
\begin{aligned}
|
||||
2S - S &= \left(\frac{1}{2} - \frac{0}{2}\right) + \left(\frac{2}{2^2} - \frac{1}{2^2}\right) + \left(\frac{3}{2^3} - \frac{2}{2^3}\right) + \dots + \left(\frac{k+1}{2^{k+1}} - \frac{k}{2^{k+1}}\right) + \dots \\\\
|
||||
S &= \frac{1}{2} + \frac{1}{2^1} + \frac{1}{2^2} + \dots + \frac{1}{2^k} + \dots
|
||||
\end{aligned}
|
||||
$$
|
||||
De nuevo multiplicando por 2, tenemos que
|
||||
$$2S = 1 + \frac{1}{2} + \frac{1}{2^2} + \dots + \frac{1}{2^{k-1}} + \frac{1}{2^k} +
|
||||
\dots$$
|
||||
Y de nuevo, restando las últimas dos ecuaciones
|
||||
$$
|
||||
\begin{aligned}
|
||||
2S - S &= 1 + \left(\frac{1}{2} - \frac{1}{2}\right) + \left(\frac{1}{2^2} - \frac{1}{2^2}\right) + \dots + \left(\frac{1}{2^k} - \frac{1}{2^k}\right) + \dots \\\\
|
||||
S &= 1
|
||||
\end{aligned}
|
||||
$$
|
||||
Por lo tanto, en promedio obtendremos una cara de este tipo de efectos. Volviendo al
|
||||
ejemplo de **Beartic**, haremos en promedio $50$ de daño con su primer ataque.
|
||||
|
||||
# Lanza $n$ monedas
|
||||
|
||||
{{ ptcg_card(id="stoutland-wht-la", display=true) }}u
|
||||
|
||||
El segundo tipo de efectos que estudiaremos es *"Lanza $n$ monedas. Haz cierta acción
|
||||
por el número de caras"*. Al igual que antes, queremos saber cuál es la probabilidad
|
||||
de obtener exactamente $k$ caras de entre las $n$. De la sección anterior, sabemos
|
||||
que la cantidad total de posibilidades para $n$ lanzamientos de monedas es $2^n$. Por
|
||||
lo tanto, solo nos falta calcular de cuántas formas podemos obtener $k$ caras de
|
||||
entre $n$ lanzamientos. Esto es equivalente a elegir cuáles de los $n$ lanzamientos
|
||||
queremos que sean cara y dejamos que el resto sean cruz, por lo que nos interesa
|
||||
contar cuántos subconjuntos de tamaño $k$ de entre los $n$ lanzamientos existen.
|
||||
|
||||
Antes de hacer ese conteo, primero resolveremos otro problema que nos ayudará en el
|
||||
problema original. Dada una lista de $n$ elementos, queremos contar de cuántas formas
|
||||
podemos ordenar esta lista. Para el primer elemento, tenemos $n$ opciones. Para el
|
||||
segundo, solo tenemos $n-1$ opciones, pues no podemos repetir el elemento que
|
||||
elegimos primero. Para el tercero, tenemos $n-2$ opciones, pues no podemos elegir
|
||||
ninguno de los dos primeros elementos. Repitiendo el argumento, llegamos hasta el
|
||||
último elemento de la lista, que solo tiene una opción, el elemento que no elegimos
|
||||
en las $n-1$ posiciones anteriores. Así, el total de formas de ordenar la lista es
|
||||
$$n \cdot (n-1) \cdot (n-2) \cdot\dots\cdot2\cdot1$$
|
||||
Esta multiplicación tiene nombre y se conoce como el factorial de $n$ y se denota por
|
||||
$n!$.
|
||||
|
||||
Volviendo a nuestro problema original, elijamos las $k$ posiciones en las cuales
|
||||
queremos que la moneda sea una cara. Para la primera posición, tenemos $n$ opciones.
|
||||
Para la segunda, $n-1$ opciones, y así, hasta la posición $k$, para la cual tenemos
|
||||
$n - (k - 1) = n - k + 1$ opciones. Sin embargo, en esta lista de posiciones para las
|
||||
caras, estamos considerando el orden, pero solo nos interesa el conjunto de
|
||||
posiciones, por lo que estamos contando cada opción muchas veces. ¿Cuántas veces?
|
||||
Precisamente, el número de formas de ordenar la lista de estas $k$ posiciones, que ya
|
||||
sabemos es $k!$. Por lo tanto, la cantidad de formas de obtener $k$ caras entre $n$
|
||||
lanzamientos es
|
||||
$$\frac{n\cdot(n-1)\cdot\dots\cdot(n-k+1)}{k!} = \frac{n!}{k!(n-k)!},$$
|
||||
donde la última igualdad se obtiene agregando los factores de $(n-k)!$ arriba y abajo
|
||||
en la fracción. Este valor se conoce como coeficiente binomial[^1] y se denota por
|
||||
$\binom{n}{k}$.
|
||||
|
||||
Finalmente, la probabilidad de obtener $k$ caras entre $n$ monedas es
|
||||
$$\frac{\binom{n}{k}}{2^k}$$
|
||||
|
||||
Hagamos el ejercicio de calcular cuál es la probabilidad de recuperar $2$ cartas con
|
||||
el ataque de Stoutland. La probabilidad de sacar $2$ caras entre $3$ lanzamientos es
|
||||
$$\frac{\binom{3}{2}}{2^3} = \frac{\frac{3\cdot2}{2\cdot1}}{2^3} = \frac{3}{8}$$
|
||||
Sin embargo, también nos interesa obtener $3$ lanzamientos, puesto que salvo
|
||||
situaciones muy específicas, recuperar $3$ cartas también cubrirá los casos en los
|
||||
que queríamos recuperar 2, así que en verdad la pregunta que nos interesaba es la
|
||||
probabilidad de obtener *al menos* $2$ caras. La probabilidad de obtener las $3$
|
||||
caras es
|
||||
$$\frac{\binom{3}{3}}{2^3}=\frac{\frac{3!}{3!}}{8}=\frac{1}{8}$$
|
||||
Y por lo tanto, la probabilidad de obtener al menos $2$ caras de entre $3$ es
|
||||
$$\frac{3}{8} + \frac{1}{8} = \frac{4}{8} = \frac{1}{2}$$
|
||||
|
||||
En general, no hay una fórmula cerrada para estas sumas de coeficientes binomiales,
|
||||
por lo que para resolver la pregunta de obtener al menos $k$ caras de entre $n$
|
||||
monedas se suelen usar calculadoras[^2].
|
||||
|
||||
# Digger?
|
||||
|
||||
{{ ptcg_card(id="digger-es", display=true) }}
|
||||
|
||||
Ahora estudiaremos una carta que definitivamente trata sobre lanzar monedas: **Digger
|
||||
(Rocket's Secret Machine)**. La pregunta obvia es ¿cuál es la probabilidad de que los
|
||||
$10$ de daño terminen en mi Pokémon activo si yo jugué la carta? Notemos que se
|
||||
parece un poco al primer problema, pues se lanzan monedas hasta que salga cruz. Sin
|
||||
embargo, solo si la cruz sale en los lanzamientos impares (el primer lanzamiento, el
|
||||
tercer lanzamiento, etc) el daño se pondrá en mi Pokémon activo y solo si sale en los
|
||||
lanzamientos pares el daño se pondrá en el Pokémon del rival. Que salga cruz en los
|
||||
lanzamientos impares es equivalente a que salgan cantidades pares de caras ($0$
|
||||
caras, $2$ caras, etc), por lo que la probabilidad de que la carta haga daño al
|
||||
Pokémon propio es
|
||||
$$
|
||||
\begin{aligned}
|
||||
P &= p_0 + p_2 + p_4 + \dots p_{2k} + \dots \\\\
|
||||
&= \frac{1}{2} + \frac{1}{2^3} + \frac{1}{2^5} + \dots \frac{1}{2^{2k+1}} \dots \\\\
|
||||
&= \frac{1}{2}\left(1 + \frac{1}{2^2} + \frac{1}{2^4} + \dots + \frac{1}{2^{2k}} + \dots \right) \\\\
|
||||
&= \frac{1}{2}\left(1 + \frac{1}{4} + \frac{1}{4^2} + \dots + \frac{1}{4^k} + \dots \right) \\\\
|
||||
\end{aligned}
|
||||
$$
|
||||
Multiplicando por $4$
|
||||
$$
|
||||
\begin{aligned}
|
||||
4P &= \frac{1}{2}\left(4 + 1 + \frac{1}{4} + \frac{1}{4^2} \dots + \frac{1}{4^{k-1}} + \dots \right) \\\\
|
||||
\end{aligned}
|
||||
$$
|
||||
Restando las últimas dos ecuaciones
|
||||
$$
|
||||
\begin{aligned}
|
||||
4P - P &= \frac{1}{2}\left(4 + 1 - 1 + \frac{1}{4} - \frac{1}{4} + \dots + \frac{1}{4^k} - \frac{1}{4^k}+ \dots \right) \\\\
|
||||
3P &= \frac{1}{2}\cdot4 = 2\\\\
|
||||
\end{aligned}
|
||||
$$
|
||||
Y por lo tanto
|
||||
$$ P = \frac{2}{3} $$
|
||||
O sea, demostramos con números que no es una carta solo mala, sino que pésima.
|
||||
|
||||
|
||||
|
||||
---
|
||||
[^1]: [Coeficiente binomial en Wikipedia](https://es.wikipedia.org/wiki/Coeficiente_binomial)
|
||||
[^2]: [Binomial Distribution Probability Calculator (en inglés)](https://stattrek.com/online-calculator/binomial)
|
||||
12
content/ptcg/cards/beartic-blk-la.toml
Normal file
12
content/ptcg/cards/beartic-blk-la.toml
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
name = "Beartic"
|
||||
kind = "pokemon"
|
||||
type = "stage1"
|
||||
hp = 150
|
||||
element = "[W]"
|
||||
attacks = [
|
||||
{ cost = "[C]", name = "Cabezazo Continuo", damage = "50×", effect = "Lanza 1 moneda hasta que salga cruz. Este ataque hace 50 puntos de daño por cada cara." },
|
||||
{ cost = "[W][W][W][C]", name = "Frío Extremo", damage = 150, effect = "Durante el próximo turno de tu rival, el Pokémon Defensor no puede usar ataques." },
|
||||
]
|
||||
weakness = "[M]×2"
|
||||
resistance = ""
|
||||
retreat = "[C][C][C]"
|
||||
4
content/ptcg/cards/digger-es.toml
Normal file
4
content/ptcg/cards/digger-es.toml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
name = "Digger (Rocket's Secret Machine)"
|
||||
kind = "trainer"
|
||||
type = "item"
|
||||
effect = "Lanza una moneda. Si sale cruz, haz 10 de daño a tu Pokémon Activo. Si sale cara, tu rival lanza una moneda. Si sale cruz, tu rival hace 10 de daño a su Pokémon Activo. Si sale cara, tú lanzas una moneda. Sigue haciendo esto hasta que un jugador obtenga cruz."
|
||||
12
content/ptcg/cards/stoutland-wht-la.toml
Normal file
12
content/ptcg/cards/stoutland-wht-la.toml
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
name = "Stoutland"
|
||||
kind = "pokemon"
|
||||
type = "stage2"
|
||||
hp = 160
|
||||
element = "[C]"
|
||||
attacks = [
|
||||
{ cost = "[C]", name = "Rastreo", effect = "Lanza 3 monedas. Toma de tu pila de descartes una cantidad de cartas igual o inferior al número de caras que salieron y ponlas en tu mano." },
|
||||
{ cost = "[C][C][C][C]", name = "Colmillo Especial", damage = "100+", effect = "Si este Pokémon tiene alguna Energía Especial unida, este ataque hace 100 puntos de daño más." },
|
||||
]
|
||||
weakness = "[F]×2"
|
||||
resistance = ""
|
||||
retreat = "[C][C][C]"
|
||||
BIN
static/ptcg/beartic-blk-la.png
Normal file
BIN
static/ptcg/beartic-blk-la.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 294 KiB |
BIN
static/ptcg/beartic-blk-la.webp
Normal file
BIN
static/ptcg/beartic-blk-la.webp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 213 KiB |
BIN
static/ptcg/digger-es.png
Normal file
BIN
static/ptcg/digger-es.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 278 KiB |
BIN
static/ptcg/digger-es.webp
Normal file
BIN
static/ptcg/digger-es.webp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 184 KiB |
BIN
static/ptcg/stoutland-wht-la.png
Normal file
BIN
static/ptcg/stoutland-wht-la.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 321 KiB |
BIN
static/ptcg/stoutland-wht-la.webp
Normal file
BIN
static/ptcg/stoutland-wht-la.webp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 227 KiB |
|
|
@ -867,3 +867,18 @@ code, .highlight {
|
|||
color: #00aeef;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.ptcg-deck .bottom,
|
||||
.ptcg-card .bottom {
|
||||
font-weight: 600;
|
||||
font-size: 0.8em;
|
||||
margin-top: 1em;
|
||||
padding: 0.1em 0.6em;
|
||||
border-style: solid;
|
||||
border-width: 2px;
|
||||
border-color: $border-color;
|
||||
border-radius: 6px;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
gap: 0.2em
|
||||
}
|
||||
|
|
|
|||
|
|
@ -30,6 +30,12 @@ function ptcg_icons(
|
|||
|
||||
const effects = deck.querySelectorAll('.effect')
|
||||
elements.push(...effects);
|
||||
|
||||
const attack_effects = deck.querySelectorAll('.attack-effect')
|
||||
elements.push(...attack_effects);
|
||||
|
||||
const bottoms = deck.querySelectorAll('.bottom')
|
||||
elements.push(...bottoms);
|
||||
});
|
||||
|
||||
const cards = document.querySelectorAll('.ptcg-card');
|
||||
|
|
@ -45,6 +51,13 @@ function ptcg_icons(
|
|||
|
||||
const effects = card.querySelectorAll('.effect')
|
||||
elements.push(...effects);
|
||||
|
||||
const attack_effects = card.querySelectorAll('.attack-effect')
|
||||
elements.push(...attack_effects);
|
||||
|
||||
const bottoms = card.querySelectorAll('.bottom')
|
||||
elements.push(...bottoms);
|
||||
|
||||
});
|
||||
elements.forEach(element => {
|
||||
element.innerHTML = element.innerHTML.replace(regex, energy);
|
||||
|
|
|
|||
|
|
@ -22,6 +22,12 @@ function init() {
|
|||
|
||||
const effects = deck.querySelectorAll('.effect')
|
||||
elements.push(...effects);
|
||||
|
||||
const attack_effects = deck.querySelectorAll('.attack-effect')
|
||||
elements.push(...attack_effects);
|
||||
|
||||
const bottoms = deck.querySelectorAll('.bottom')
|
||||
elements.push(...bottoms);
|
||||
});
|
||||
|
||||
const cards = document.querySelectorAll('.ptcg-card');
|
||||
|
|
@ -37,6 +43,12 @@ function init() {
|
|||
|
||||
const effects = card.querySelectorAll('.effect')
|
||||
elements.push(...effects);
|
||||
|
||||
const attack_effects = card.querySelectorAll('.attack-effect')
|
||||
elements.push(...attack_effects);
|
||||
|
||||
const bottoms = card.querySelectorAll('.bottom')
|
||||
elements.push(...bottoms);
|
||||
});
|
||||
elements.forEach(element => {
|
||||
element.innerHTML = element.innerHTML.replace(regex, energy);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue