02 - Due dadi: perché 7 esce più spesso di 2
13-08-2026
Probabilità e combinatoria nei giochi
MATH
13-08-2026
Probabilità e combinatoria nei giochi
Con un solo dado equo il problema era semplice: sei facce, sei esiti equiprobabili.
Con due dadi compare subito una trappola intuitiva.
Le somme possibili sono:
2 3 4 5 6 7 8 9 10 11 12
Sono undici valori diversi. Potremmo quindi essere tentati di pensare che ciascuna somma abbia probabilità:
1/11
Ma basta lanciare davvero due dadi per accorgersi che il 7 compare molto più spesso del 2 o del 12.
Il motivo è che le somme non sono gli esiti elementari equiprobabili dell'esperimento.
Per calcolare correttamente la probabilità dobbiamo tornare al principio introdotto nel primo articolo: prima di contare i casi favorevoli, dobbiamo costruire lo spazio campionario giusto.
Per evitare ambiguità chiamiamo i due dadi A e B.
Il dado A può produrre:
1 2 3 4 5 6
e, qualunque sia il risultato di A, anche il dado B può produrre:
1 2 3 4 5 6
Gli esiti elementari non sono quindi le somme, ma coppie ordinate:
(A, B)
come:
(1,1)
(1,2)
(1,3)
...
(6,5)
(6,6)
Se i due dadi sono equi e i lanci sono indipendenti, tutte queste coppie hanno la stessa probabilità.
Per il primo dado abbiamo:
6
possibilità.
Per ciascuna di esse il secondo dado offre altre:
6
possibilità.
Il numero complessivo di coppie è quindi:
6 · 6 = 36
Questa idea è il principio fondamentale del conteggio, o principio del prodotto.
Se una prima scelta può essere effettuata in m modi e, per ciascuna di queste possibilità, una seconda scelta può essere effettuata in n modi, le coppie possibili sono:
m · n
Nel nostro caso:
6 · 6 = 36
Non abbiamo ancora introdotto permutazioni o combinazioni. Stiamo usando un'idea più elementare che sarà alla base di entrambe: quando un risultato completo è costruito attraverso più scelte successive, possiamo spesso moltiplicare il numero delle possibilità.
Per ottenere somma 7 possiamo avere:
(1,6)
(2,5)
(3,4)
(4,3)
(5,2)
(6,1)
Qualcuno potrebbe obiettare che, se i dadi sono identici, 1+6 e 6+1 sembrano la stessa cosa.
Come somma sono la stessa cosa.
Come esiti elementari dell'esperimento sono invece due risultati distinti: nel primo caso il dado A mostra 1 e il dado B mostra 6; nel secondo accade il contrario.
Non importa che i dadi abbiano fisicamente lo stesso colore. Possiamo distinguerli concettualmente come "primo dado" e "secondo dado", oppure lanciarli uno dopo l'altro.
La distinzione serve a costruire 36 esiti elementari tutti equiprobabili.
Se decidessimo invece di usare coppie non ordinate come {1,6}, {2,5} e così via, quelle coppie non sarebbero più tutte equiprobabili: {1,6} può verificarsi in due modi ordinati, mentre {3,3} soltanto in uno.
Ancora una volta, il punto non è scegliere l'unico spazio campionario possibile, ma sceglierne uno nel quale il conteggio sia coerente con le probabilità.
Per ottenere 2 esiste una sola coppia:
(1,1)
Quindi:
P(somma 2) = 1/36
ossia circa:
2,78%
Anche il 12 si ottiene in un solo modo:
(6,6)
e ha la stessa probabilità:
1/36
Per il 7 abbiamo invece:
(1,6)
(2,5)
(3,4)
(4,3)
(5,2)
(6,1)
Sono 6 casi favorevoli sui 36 possibili:
P(somma 7)
=
6/36
=
1/6
cioè circa:
16,67%
Il 7 è quindi sei volte più probabile del 2:
(6/36) / (1/36) = 6
Non c'è nulla di misterioso nel numero 7. Semplicemente, molte più coppie di dadi producono quella somma.
Se ripetiamo lo stesso conteggio per ogni somma otteniamo:
somma 2 -> 1 modo -> 1/36
somma 3 -> 2 modi -> 2/36
somma 4 -> 3 modi -> 3/36
somma 5 -> 4 modi -> 4/36
somma 6 -> 5 modi -> 5/36
somma 7 -> 6 modi -> 6/36
somma 8 -> 5 modi -> 5/36
somma 9 -> 4 modi -> 4/36
somma 10 -> 3 modi -> 3/36
somma 11 -> 2 modi -> 2/36
somma 12 -> 1 modo -> 1/36
I numeri dei modi:
1 2 3 4 5 6 5 4 3 2 1
formano una distribuzione simmetrica con il massimo al centro.
La simmetria non è casuale. Per ogni coppia che produce una somma bassa esiste una coppia "speculare" che produce la somma corrispondente alta. Per esempio:
(1,2) -> 3
(6,5) -> 11
e infatti 3 e 11 hanno lo stesso numero di combinazioni ordinate.
Possiamo verificare il conteggio sommando il numero di modi di ottenere tutte le somme:
1 + 2 + 3 + 4 + 5 + 6 + 5 + 4 + 3 + 2 + 1
=
36
È un controllo molto utile.
Ogni coppia possibile dei due dadi produce esattamente una somma, quindi distribuendo le 36 coppie tra gli eventi "somma 2", "somma 3", ..., "somma 12" dobbiamo ritrovarle tutte una volta e una soltanto.
Di conseguenza anche le probabilità devono sommare a:
1
Questo tipo di verifica diventerà particolarmente importante quando i conteggi combinatori saranno molto più grandi.
Ora possiamo vedere con precisione perché:
1/11
era sbagliato.
È vero che ci sono 11 somme possibili, ma non è vero che siano equiprobabili.
La somma 2 rappresenta una sola coppia elementare:
(1,1)
mentre la somma 7 ne raggruppa sei.
Nel primo articolo abbiamo visto che:
casi favorevoli / casi possibili
funziona direttamente quando i casi elementari che stiamo contando hanno la stessa probabilità.
Qui gli 11 valori della somma non soddisfano quella condizione.
Le 36 coppie ordinate, invece, sì.
Possiamo ottenere lo stesso risultato usando l'indipendenza.
La probabilità che il primo dado mostri 1 è:
1/6
e la probabilità che il secondo mostri 6 è anch'essa:
1/6
Poiché i due lanci sono indipendenti:
P((1,6))
=
1/6 · 1/6
=
1/36
Lo stesso vale per ciascuna delle 36 coppie.
Per ottenere somma 7 abbiamo sei eventi elementari incompatibili tra loro, quindi sommiamo:
P(somma 7)
=
6 · 1/36
=
1/6
Il conteggio e il calcolo probabilistico stanno raccontando la stessa cosa da due punti di vista diversi.
Per eseguire l’esempio standalone associato a questo articolo, dalla radice del repository:
dotnet run .\examples\M1.2\DueDadi.cs
Con 36 possibilità non abbiamo bisogno di alcuna formula sofisticata. Possiamo enumerarle tutte.
var conteggi = new int[13];
for (int dadoA = 1; dadoA <= 6; dadoA++)
{
for (int dadoB = 1; dadoB <= 6; dadoB++)
{
int somma = dadoA + dadoB;
conteggi[somma]++;
}
}
const int casiPossibili = 6 * 6;
for (int somma = 2; somma <= 12; somma++)
{
double probabilita =
(double)conteggi[somma] / casiPossibili;
Console.WriteLine(
$"{somma,2}: {conteggi[somma]} modi -> {probabilita:P2}");
}
Il doppio ciclo rappresenta direttamente il principio del prodotto.
Per ogni valore del primo dado attraversiamo tutti i sei valori del secondo. Alla fine avremo visitato:
6 · 6 = 36
coppie.
Il programma non simula i dadi: enumera l'intero spazio campionario e produce quindi il conteggio esatto.
Il codice può anche controllare le proprietà che abbiamo derivato a mano:
Console.WriteLine(conteggi[2] == 1); // True
Console.WriteLine(conteggi[7] == 6); // True
Console.WriteLine(conteggi[12] == 1); // True
Console.WriteLine(conteggi.Sum() == 36); // True
Il controllo:
conteggi.Sum() == 36
è particolarmente importante perché verifica che ogni coppia sia stata conteggiata esattamente una volta.
Quando in futuro enumereremo mani di poker, useremo la stessa idea su uno spazio campionario molto più grande.
Il principio del prodotto si estende immediatamente.
Ogni dado ha 6 possibili risultati, quindi tre dadi producono:
6 · 6 · 6
=
6³
=
216
terne ordinate equiprobabili.
Con quattro dadi avremmo:
6⁴ = 1296
e con n dadi:
6ⁿ
esiti elementari.
Questo non significa che tutte le somme possibili abbiano la stessa probabilità. Al contrario, aumentando il numero di dadi la distribuzione delle somme diventa ancora più concentrata attorno ai valori centrali.
Il principio del prodotto ci dice quanti sono gli esiti elementari; per sapere quanto è probabile un evento dobbiamo poi contare quanti di quegli esiti lo producono.
Possiamo infine lanciare virtualmente due dadi molte volte e osservare le frequenze delle somme.
static int[] SimulaDueDadi(
int numeroLanci,
int seed = 42)
{
if (numeroLanci <= 0)
throw new ArgumentOutOfRangeException(nameof(numeroLanci));
var random = new Random(seed);
var conteggi = new int[13];
for (int i = 0; i < numeroLanci; i++)
{
int dadoA = random.Next(1, 7);
int dadoB = random.Next(1, 7);
conteggi[dadoA + dadoB]++;
}
return conteggi;
}
int[] simulati = SimulaDueDadi(1_000_000);
for (int somma = 2; somma <= 12; somma++)
{
double frequenza =
(double)simulati[somma] / 1_000_000;
Console.WriteLine(
$"{somma,2}: {frequenza:P3}");
}
Le frequenze non saranno esattamente:
1/36, 2/36, ..., 6/36, ..., 1/36
ma con un milione di lanci dovrebbero risultare vicine alla distribuzione teorica.
Come nel primo articolo, la simulazione non sostituisce il calcolo esatto. Qui conosciamo già tutte le 36 possibilità, quindi possiamo determinare la probabilità senza alcuna incertezza statistica.
Monte Carlo serve soltanto a osservare il comportamento di una lunga sequenza di lanci.
Con due dadi abbiamo incontrato il primo problema in cui gli esiti che vediamo a prima vista non sono quelli che conviene contare.
Le somme possibili sono soltanto 11, ma non sono equiprobabili. Lo spazio campionario più utile è costituito dalle 36 coppie ordinate dei risultati dei due dadi:
6 · 6 = 36
Da quelle coppie nasce tutto il resto.
La somma 2 raccoglie una sola coppia, mentre la somma 7 ne raccoglie sei; per questo:
P(2) = 1/36
e:
P(7) = 6/36 = 1/6
Il principio del prodotto che abbiamo usato qui è il primo vero strumento di combinatoria della serie. Nei prossimi problemi continueremo a costruire risultati attraverso più scelte, ma prima completeremo le fondamenta della probabilità con un'altra tecnica sorprendentemente potente: invece di contare direttamente tutti i modi in cui può verificarsi un evento, a volte conviene calcolare il suo contrario.