Quando il Boss Non Droppa Quello che Ti Serve (E Non è Sfiga): Statistica Hero per Game Designer e Giocatori Ostinati
Sei incavolato perchè il boss finale continua a droppare tutto, tranne l’unico pezzo che ti serve per completare il set?
Non è solo sfiga; è pura statistica travestita da pixel.
Ti sei mai chiesto perché quel drop al 2% sembra non uscire mai, mentre i frammenti comuni ti invadono l’inventario?
Oggi passiamo al livello “Hero” della statistica. Abbiamo analizzato una spedizione leggendaria usando la Distribuzione Multinomiale per rispondere alla domanda che ogni giocatore si pone: quanto tempo ci vorrà davvero per finire questa missione?
Spoiler: L’intuizione spesso sbaglia. Scopri perché, per completare la tua collezione, a volte conviene potenziare l’oggetto più “comune” invece di quello raro.
Se ami il game design o se vuoi semplicemente capire come gli sviluppatori manipolano le tue speranze (matematicamente), questo articolo è per te. 👇
Esercizio Hero: La spedizione leggendaria
(Distribuzione Multivariata e Composizione di Modelli)
Livello: Difficile (Hero)
Testo
In un gioco di ruolo online, un giocatore sta cercando di completare una missione epica che richiede di ottenere tre tipi di risorse rare, droppate da un boss settimanale:
- Frammento dell’Alba: Probabilità del 10% (successo di tipo A)
- Sigillo del Crepuscolo: Probabilità del 5% (successo di tipo B)
- Essenza dell’Eterno: Probabilità del 2% (successo di tipo C)
Le ricompense del boss sono indipendenti tra loro, ma in ogni uccisione del boss il giocatore può ottenere al massimo una risorsa (quando non ottiene nulla, la probabilità è l’83% complementare). Il giocatore ha già ottenuto 2 Frammenti dell’Alba, 1 Sigillo del Crepuscolo e 0 Essenze dell’Eterno. Deve ottenere almeno 5 Frammenti, 3 Sigilli e 2 Essenze per completare la missione. Il boss può essere ucciso una volta alla settimana.
Domande:
- Modellizzazione iniziale: Definisci le variabili casuali appropriate per descrivere il numero di risorse di ogni tipo ottenute in un numero fisso di uccisioni. Che distribuzione congiunta seguono?
- Pianificazione a lungo termine: Quante settimane deve aspettarsi di impiegare, in media, per completare la missione?
- Sfida imminente: Il giocatore ha un permesso speciale per uccidere il boss 10 volte di seguito in un giorno. Qual è la probabilità che in queste 10 uccisioni ottenga esattamente le risorse che gli mancano (cioè 3 Frammenti, 2 Sigilli e 2 Essenze) e completi la missione?
- Percorso alternativo: Esiste un oggetto magico che raddoppia la probabilità di ottenere una singola risorsa specifica (a scelta del giocatore) per una sola uccisione, ma se usato, quella uccisione non può droppare altre risorse. Se il giocatore potesse usare questo oggetto su una delle prossime 10 uccisioni, su quale risorsa dovrebbe usarlo per massimizzare la probabilità di completare la missione esattamente alla decima uccisione? (Considera che le risorse mancanti sono 3A, 2B, 2C e che l’oggetto forza il drop del tipo scelto con probabilità [math]2p[/math], dove [math]p[/math] è la probabilità originale, e azzera le altre probabilità).
Risoluzione
Punto 1: Modellizzazione iniziale
💡 Richiamo teorico:
Quando abbiamo più tipi di successo mutuamente esclusivi in ogni prova, il numero di successi di ogni tipo in [math]n[/math] prove segue una distribuzione Multinomiale. È la generalizzazione della Binomiale.
Sia [math]n[/math] il numero di uccisioni del boss. Definiamo le variabili:
- [math]X_A[/math] = numero di Frammenti dell’Alba (tipo A)
- [math]X_B[/math] = numero di Sigilli del Crepuscolo (tipo B)
- [math]X_C[/math] = numero di Essenze dell’Eterno (tipo C)
- [math]X_0[/math] = numero di uccisioni senza drop (insuccesso)
Le probabilità associate a ogni risultato in una singola prova sono:
[math]\displaystyle \begin{aligned}
p_A &= 0,10 \\
p_B &= 0,05 \\
p_C &= 0,02 \\
p_0 &= 1 – (0,10 + 0,05 + 0,02) = 0,83
\end{aligned}[/math]
Allora il vettore [math](X_A, X_B, X_C, X_0)[/math] segue una distribuzione Multinomiale con parametri [math]n[/math] e [math]p_A, p_B, p_C, p_0[/math]. La funzione di probabilità congiunta è:
[math]\displaystyle \begin{aligned}
P(X_A=a, X_B=b, X_C=c, X_0=n-a-b-c) &= \\
&{} \quad \frac{n!}{a! \, b! \, c! \, (n-a-b-c)!} \\
&{} \quad \cdot p_A^a \, p_B^b \, p_C^c \, p_0^{n-a-b-c}
\end{aligned}[/math]
Punto 2: Pianificazione a lungo termine (Numero medio di settimane)
Il giocatore ha già 2A, 1B, 0C. Gli mancano:
- [math]r_A = 5 – 2 = 3[/math] Frammenti
- [math]r_B = 3 – 1 = 2[/math] Sigilli
- [math]r_C = 2 – 0 = 2[/math] Essenze
Dobbiamo trovare il numero medio di prove (settimane) necessario per ottenere almeno [math]r_A, r_B, r_C[/math] successi di ogni tipo. Questo non è banale perché le risorse competono tra loro.
💡 Strategia risolutiva: Non esiste una formula chiusa semplice per il tempo medio di attesa per successi multipli di tipi diversi. Possiamo però usare un approccio basato sulla legge del valore atteso per variabili dipendenti oppure simulare. In questo caso, ragioniamo sul “collo di bottiglia”.
Un metodo euristico efficace è calcolare il numero medio di prove necessario per ottenere la risorsa più critica. Ragioniamo per risorsa limitante:
- Per A ([math]p=0.10[/math]): per ottenere 3 successi, il tempo medio è
[math]\displaystyle \begin{aligned} E[T_A] &= \frac{r_A}{p_A} = \frac{3}{0.10} \\ &{} \quad = 30 \text{ settimane} \end{aligned}[/math] - Per B ([math]p=0.05[/math]):
[math]\displaystyle \begin{aligned} E[T_B] &= \frac{2}{0.05} \\ &{} \quad = 40 \text{ settimane} \end{aligned}[/math] - Per C ([math]p=0.02[/math]):
[math]\displaystyle \begin{aligned} E[T_C] &= \frac{2}{0.02} \\ &{} \quad = 100 \text{ settimane} \end{aligned}[/math]
La risorsa C è quella con il tempo atteso più lungo (100 settimane). In 100 settimane, quante risorse A e B ci aspettiamo di ottenere?
- A attesi: [math]100 \cdot 0.10 = 10[/math] (ne servono 3, quindi siamo ampiamente sopra)
- B attesi: [math]100 \cdot 0.05 = 5[/math] (ne servono 2, siamo sopra)
💡 Osservazione: Il tempo medio per completare la missione è determinato dalla risorsa più rara. Una stima ragionevole è che il tempo medio sia circa 100 settimane, dominato dalla coda lunga della distribuzione di C.
Risposta: Ci si aspetta in media circa 100 settimane.
Verifichiamo l’intuizione con una simulazione
La stima di circa 100 settimane deriva da un ragionamento sul “collo di bottiglia”: la risorsa più rara domina il tempo di completamento.
Tuttavia questo è solo un valore medio teorico.
Nei sistemi probabilistici reali la variabilità può essere enorme.
Per capire meglio cosa succede possiamo usare una tecnica molto comune nella scienza dei dati: la simulazione Monte Carlo.
L’idea è semplice: simuliamo migliaia di uccisioni del boss e osserviamo quanti drop otteniamo in media.
import numpy as np
# Probabilità dei drop
p = [0.10, 0.05, 0.02, 0.83]
def simulate_runs(n_sim=100000):
essences = []
for _ in range(n_sim):
# simuliamo 100 uccisioni del boss
drops = np.random.choice(4, 100, p=p)
# contiamo quante Essenze (tipo C) sono uscite
essences.append(np.sum(drops == 2))
return np.mean(essences)
print(simulate_runs())
1.99739
Cosa fa questo script
1️⃣ Definiamo le probabilità dei possibili risultati di una uccisione:
-
10% Frammento dell’Alba
-
5% Sigillo del Crepuscolo
-
2% Essenza dell’Eterno
-
83% nessun drop
2️⃣ Simuliamo 100 uccisioni del boss usando numpy.random.choice.
3️⃣ Ripetiamo l’esperimento 100.000 volte.
4️⃣ Calcoliamo quante Essenze dell’Eterno compaiono in media.
Questo tipo di simulazione è chiamato Monte Carlo ed è uno degli strumenti fondamentali della data science.
Se eseguiamo lo script, il risultato sarà vicino a:
2 Essenze ogni 100 uccisioni
cioè esattamente il valore atteso:
100 × 0.02 = 2
Questo conferma una proprietà fondamentale della probabilità:
Nel lungo periodo le simulazioni convergono verso il valore atteso teorico.
Simulare quanto tempo serve per completare la missione.
import numpy as np
p = [0.10, 0.05, 0.02, 0.83]
def run_mission():
A = 2
B = 1
C = 0
weeks = 0
while A < 5 or B < 3 or C < 2:
drop = np.random.choice(4, p=p)
if drop == 0:
A += 1
elif drop == 1:
B += 1
elif drop == 2:
C += 1
weeks += 1
return weeks
results = [run_mission() for _ in range(10000)]
print("Tempo medio:", np.mean(results))
Tempo medio: 107.2965
Quando eseguiamo la simulazione migliaia di volte, il tempo medio per completare la missione converge verso circa 100 settimane.
Ma la cosa più interessante non è la media: è la variabilità.
Alcuni giocatori finiranno la missione in 40–50 settimane.
Altri potrebbero impiegare più di 200 settimane.

Il risultato è illuminante: La distribuzione non è simmetrica: ha una coda lunga verso destra.
Questo significa che mentre alcuni giocatori completano la missione relativamente in fretta, altri possono restare bloccati per centinaia di settimane.
È questa coda lunga della distribuzione che genera la sensazione familiare ai giocatori:
“Questo boss non droppa mai quello che mi serve.”
Punto 3: Probabilità di completare la missione in esattamente 10 uccisioni
In 10 uccisioni, vogliamo ottenere esattamente [math]a=3[/math], [math]b=2[/math], [math]c=2[/math]. Il numero di insuccessi sarà [math]n_0 = 10 – (3+2+2) = 3[/math]. Applichiamo la formula multinomiale:
[math]\displaystyle \begin{aligned}
P &= \frac{10!}{3! \, 2! \, 2! \, 3!} \\
&{} \quad \cdot (0,10)^3 \cdot (0,05)^2 \cdot (0,02)^2 \cdot (0,83)^3
\end{aligned}[/math]
Calcoliamo passo passo. Coefficiente multinomiale:
[math]\displaystyle \begin{aligned}
\frac{10!}{3! \, 2! \, 2! \, 3!} &= \frac{3628800}{6 \cdot 2 \cdot 2 \cdot 6} \\
&= \frac{3628800}{144} = 25200
\end{aligned}[/math]
Prodotti delle probabilità:
[math]\displaystyle \begin{aligned}
(0,10)^3 &= 0,001 \\
(0,05)^2 &= 0,0025 \\
(0,02)^2 &= 0,0004 \\
(0,83)^3 &\approx 0,571787
\end{aligned}[/math]
Probabilità totale:
[math]\displaystyle \begin{aligned}
P &\approx 25200 \cdot (1,0 \times 10^{-9}) \cdot 0,571787 \\
&\approx 25200 \cdot 5,71787 \times 10^{-10} \\
&\approx 1,4409 \times 10^{-5}
\end{aligned}[/math]
La probabilità è circa 0,00144%, cioè una su 69.444. È estremamente bassa, come ci si aspetta.
Punto 4: Uso strategico dell’oggetto magico
Vogliamo massimizzare la probabilità di completare la missione esattamente alla decima uccisione. Dopo 9 uccisioni il conteggio deve essere:
- Se alla decima esce A: dopo 9 uccisioni devono esserci 2A, 2B, 2C.
- Se alla decima esce B: dopo 9 uccisioni devono esserci 3A, 1B, 2C.
- Se alla decima esce C: dopo 9 uccisioni devono esserci 3A, 2B, 1C.
💡 Strategia: Conviene usare l’oggetto alla fine.
La probabilità totale sarà:
[math]\displaystyle \begin{aligned}
P_{\text{finire con } R} &= P(\text{stato corretto dopo 9}) \\
&{} \quad \times (2p_R)
\end{aligned}[/math]
Caso A (oggetto su A alla decima):
[math]\displaystyle \begin{aligned}
P_{\text{stato A}} &= \frac{9!}{2! \, 2! \, 2! \, 3!} \\
&{} \quad \cdot (0.10)^2 (0.05)^2 (0.02)^2 (0.83)^3 \\
&\approx 7560 \cdot 1.0 \times 10^{-8} \cdot 0.571787 \\
&\approx 4.323 \times 10^{-5}
\end{aligned}[/math]
[math]\displaystyle \begin{aligned}
P_A &= 4.323 \times 10^{-5} \cdot 0.20 \\
&= 8.646 \times 10^{-6}
\end{aligned}[/math]
Caso B (oggetto su B alla decima):
[math]\displaystyle \begin{aligned}
P_{\text{stato B}} &= \frac{9!}{3! \, 1! \, 2! \, 3!} \\
&{} \quad \cdot (0.10)^3 (0.05)^1 (0.02)^2 (0.83)^3 \\
&\approx 5040 \cdot 2.0 \times 10^{-8} \cdot 0.571787 \\
&\approx 5.764 \times 10^{-5}
\end{aligned}[/math]
[math]\displaystyle \begin{aligned}
P_B &= 5.764 \times 10^{-5} \cdot 0.10 \\
&= 5.764 \times 10^{-6}
\end{aligned}[/math]
Caso C (oggetto su C alla decima):
[math]\displaystyle \begin{aligned}
P_{\text{stato C}} &= \frac{9!}{3! \, 2! \, 1! \, 3!} \\
&{} \quad \cdot (0.10)^3 (0.05)^2 (0.02)^1 (0.83)^3 \\
&\approx 5040 \cdot 5.0 \times 10^{-8} \cdot 0.571787 \\
&\approx 1.440 \times 10^{-4}
\end{aligned}[/math]
[math]\displaystyle \begin{aligned}
P_C &= 1.440 \times 10^{-4} \cdot 0.04 \\
&= 5.76 \times 10^{-6}
\end{aligned}[/math]
Confrontiamo:
- [math]P_A \approx 8.65 \times 10^{-6}[/math]
- [math]P_B \approx 5.76 \times 10^{-6}[/math]
- [math]P_C \approx 5.76 \times 10^{-6}[/math]
Risultato: La probabilità massima si ottiene usando l’oggetto su A (Frammento dell’Alba) alla decima uccisione.
💡 Osservazione strategica: A volte conviene puntare sulla risorsa con probabilità base maggiore per l’ultimo colpo, anche se lo stato intermedio è meno probabile, perché il guadagno in probabilità nell’ultimo colpo ([math]2p_A[/math]) compensa ampiamente.
Domande di riflessione finali
-
Quale proprietà fondamentale della distribuzione Multinomiale abbiamo usato per calcolare la probabilità al punto 3?
-
Perché al punto 2 non abbiamo potuto usare una semplice formula come per la Binomiale Negativa?
-
Nel punto 4, cosa cambierebbe se l’oggetto magico potesse essere usato in una qualsiasi delle 10 uccisioni, non necessariamente l’ultima? Come imposteresti il problema?
-
Perché, nonostante pC sia la più piccola, la probabilità dello stato intermedio per C è la più alta? (Suggerimento: guarda i conteggi richiesti)
✅ Risposte alle Domande di Riflessione
1. Proprietà usata al punto 3
Abbiamo usato la funzione di probabilità congiunta della Multinomiale, che generalizza il coefficiente binomiale al caso di più categorie.
La formula:
[math]\displaystyle \begin{aligned}
& \frac{n!}{a! \, b! \, c! \, d!} p_A^a \, p_B^b \, p_C^c \, p_0^d
\end{aligned}[/math]
deriva dal conteggio di tutte le sequenze ordinate di n prove che producono esattamente a successi di tipo A, b di tipo B, ecc., moltiplicato per la probabilità di ogni specifica sequenza (che è costante grazie all’indipendenza).
2. Perché non una formula semplice per il tempo medio?
Perché il completamento della missione richiede il raggiungimento di soglie multiple su variabili dipendenti (nella stessa prova si può ottenere una sola risorsa). Non esiste una distribuzione nota con formula chiusa per il tempo di attesa del primo istante in cui:
[math]\displaystyle \begin{aligned}
& X_A \geq r_A, \quad X_B \geq r_B, \quad X_C \geq r_C
\end{aligned}[/math]
contemporaneamente. Si tratta di un problema di tempo di arresto per processi multivariati, che richiederebbe simulazioni o metodi di catene di Markov per una soluzione esatta.
3. Cosa cambierebbe se l’oggetto potesse essere usato in una qualsiasi delle 10 uccisioni?
In realtà, dal punto di vista della probabilità finale di avere i materiali dopo 10 uccisioni, la posizione temporale (usarlo alla prima o alla decima uccisione) non cambierebbe il risultato numerico complessivo, poiché le prove sono indipendenti. Tuttavia, se l’obiettivo è finire esattamente alla decima, la scelta diventa strategica.
Il problema si imposterebbe come un’ottimizzazione in cui si sceglie la risorsa R che massimizza la probabilità che il decimo evento sia il “successo risolutivo”. Se potessimo usarlo prima, dovremmo calcolare la probabilità di trovarci in uno stato di “quasi completamento” (mancanza di una sola risorsa) al nono tentativo, considerando che una delle prove precedenti ha avuto probabilità alterate.
4. Perché lo stato intermedio per C è il più probabile?
Osserviamo i conteggi richiesti dopo 9 prove:
- Per finire con C alla decima, serve lo stato: (3A, 2B, 1C)
- Per finire con A alla decima, serve lo stato: (2A, 2B, 2C)
- Per finire con B alla decima, serve lo stato: (3A, 1B, 2C)
Lo stato per finire con C richiede meno successi della risorsa rara C (solo 1 invece di 2) e più successi di A e B, che hanno probabilità molto più alte. Poiché ottenere due successi di una risorsa al 2% in sole 9 prove è estremamente difficile:
[math]\displaystyle \begin{aligned}
\text{Valore atteso } C \text{ in 9 prove} &= 9 \cdot 0,02 \\
&= 0,18
\end{aligned}[/math]
ottenere 1 successo è molto più probabile che ottenerne 2. Questo rende lo stato intermedio associato a C ([math]P_{\text{stato C}}[/math]) il più probabile tra i tre analizzati, nonostante la risorsa C sia la più difficile da trovare singolarmente.
🎓 Approccio Risolutivo (Per studenti del primo anno)
Se dovessi spiegare questo problema a un tuo collega che ha appena iniziato statistica, ecco i passaggi logici da seguire:
1. Riconoscere l’esperimento
Immagina un’urna con palline di 4 colori diversi (A, B, C e “Niente”). Ogni volta che uccidi il boss, peschi una pallina e poi la reinserisci. Poiché peschi una sola pallina alla volta, i successi sono mutuamente esclusivi. Quando hai [math]n[/math] prove e più di due esiti possibili, non puoi usare la Binomiale classica, ma devi passare alla Multinomiale.
2. Definire i parametri
Scrivi sempre la lista delle probabilità [math]p_i[/math] assicurandoti che la loro somma sia [math]1[/math] (100%).
In questo caso:
[math]\displaystyle \begin{aligned}
p_A &= 0.10, \quad p_B = 0.05, \\
p_C &= 0.02, \quad p_{insuccesso} = 0.83
\end{aligned}[/math]
3. La formula “per blocchi”
Per calcolare la probabilità di un evento specifico (come nel Punto 3), usa la formula:
[math]\displaystyle \begin{aligned}
P &= \frac{n!}{n_A! \, n_B! \, n_C! \, n_{zero}!} \\
&{} \quad \cdot (p_A^{n_A} \cdot p_B^{n_B} \cdot p_C^{n_C} \cdot p_{zero}^{n_{zero}})
\end{aligned}[/math]
- Il primo pezzo (frazione): conta in quanti modi diversi puoi ordinare i drop nella sequenza di 10 uccisioni.
- Il secondo pezzo: calcola la probabilità che quella specifica combinazione avvenga.
4. Ragionare sui margini (Il trucco del Punto 4)
Per risolvere problemi di ottimizzazione (dove usare il bonus?), non guardare solo alla risorsa singola.
Devi guardare al prodotto tra:
- La probabilità di arrivare al nono tentativo avendo quasi finito.
- La probabilità che il decimo tentativo sia quello mancante.
L’esercizio insegna che un grande incremento su una probabilità già alta (raddoppiare il 10%) spesso pesa più di un piccolo incremento su una probabilità molto bassa (raddoppiare il 2%).
Commento Applicativo
Perché questo esercizio è interessante e dove si applica nel mondo reale?
-
Game Design e Bilanciamento: Questo è esattamente il tipo di calcolo che i designer di MMO (come World of Warcraft o Genshin Impact) effettuano per decidere i “drop rate”. Devono assicurarsi che il contenuto duri abbastanza a lungo (le 100 settimane medie) senza però risultare matematicamente impossibile nel breve termine.
-
Gestione del Rischio e Logistica: In ambito industriale, questo modello descrive catene di montaggio dove un macchinario può produrre diversi tipi di pezzi, ma uno solo alla volta. Se abbiamo ordini specifici da completare (5A, 3B, 2C), il calcolo multinomiale aiuta a prevedere i tempi di consegna.
-
La Peculiarità Strategica: L’elemento più affascinante è il Punto 4. Dimostra che l’intuizione umana spesso fallisce: istintivamente aiuteremmo la risorsa “difficile” (C), ma la statistica ci dice che è più efficiente potenziare quella “facile” per chiudere il set, a causa del modo in cui i coefficienti multinomiali pesano le combinazioni di successi.
- AI e sistemi di raccomandazione: Modelli simili appaiono anche nei sistemi di raccomandazione, dove un algoritmo deve bilanciare diversi tipi di risultati possibili (clic, acquisti, visualizzazioni) che competono tra loro.
Conclusione
Questo esercizio è un piccolo laboratorio di game design, statistica applicata e psicologia del giocatore.
Mostra come i sistemi apparentemente “casuali” siano in realtà strutturati con precisione chirurgica.
E soprattutto, ci ricorda una verità fondamentale:
Non è sfiga. È matematica.
E la matematica non ha pietà.
Approfondimento avanzato: distribuzione multinomiale
Quando gli esiti possibili non sono più due (successo/fallimento), entra in gioco la distribuzione multinomiale. Questo modello è fondamentale in statistica, data science e machine learning per analizzare fenomeni con più categorie (preferenze, classificazioni, eventi complessi).
📘 Teoria e fondamenti
- 👉 La distribuzione multinomiale: definizione e formula
- 👉 Il coefficiente multinomiale: guida completa
🧠 Dalla teoria alla pratica
📊 Esercizi svolti (dal base all’avanzato)
🚀 Visione data science





