Il punto di partenza è Problem Solving Through Recreational Mathematics di Bonnie Averbach e Orin Chein, in particolare la pagina 118 dell’edizione qui mostrata. Gli autori collegano il problema delle brocche alle equazioni diofantee dando ai coefficienti un significato concreto: riempimenti meno svuotamenti verso l’esterno. Riprendiamo questo metodo, lo applichiamo alle brocche da 5 e 3 litri per ottenerne 4 e lo formalizziamo in un procedimento eseguibile. La visualizzazione interattiva e l’estensione con i cicli sono sviluppi didattici di questa pagina, non citazioni del libro.
Apri il laboratorio delle brocche, una mossa alla volta.


1. Prima le regole: che cosa significa misurare 4 litri?
Abbiamo una sorgente, uno scarico e due brocche senza tacche. Per il metodo a conteggi del libro adottiamo queste mosse: riempire una brocca vuota, svuotare nello scarico una brocca piena, oppure travasare finché la sorgente è vuota o la destinazione è piena. Non interrompiamo un travaso a occhio. Il laboratorio usa esattamente queste regole.
L’obiettivo è avere la quantità richiesta in una sola brocca, con l’altra vuota. Se diciamo soltanto «4 litri nella brocca grande», potremmo lasciare altra acqua nella piccola: è un problema diverso. I riempimenti o gli svuotamenti di brocche parzialmente piene, ammessi in altre formulazioni, non si possono contare semplicemente come contributi di una capacità intera.
2. Il problema del libro: 3 e 5 per ottenere 1
Nel libro l’esempio è espresso in galloni. Qui riproponiamo lo stesso schema numerico in litri: non è una conversione di unità, ma un problema con capacità proporzionali e lo stesso procedimento.
In questo primo esempio A contiene 3 litri e B ne contiene 5. Scriviamo 3x + 5y = 1. Il libro propone (x,y) = (2,-1): prelevare due brocche da 3 e restituire una brocca da 5. I travasi rendono possibile l’ordine delle operazioni.
| Passo | Operazione | Stato (A, B) | x | y | Bilancio totale |
|---|---|---|---|---|---|
| 0 | Partenza: entrambe vuote | (0,0) | 0 | 0 | 3 × (0) + 5 × (0) = 0 |
| 1 | Riempi A dalla sorgente: 3 L | (3,0) | 1 | 0 | 3 × (1) + 5 × (0) = 3 |
| 2 | Travasa da A a B: 3 L | (0,3) | 1 | 0 | 3 × (1) + 5 × (0) = 3 |
| 3 | Riempi A dalla sorgente: 3 L | (3,3) | 2 | 0 | 3 × (2) + 5 × (0) = 6 |
| 4 | Travasa da A a B: 2 L | (1,5) | 2 | 0 | 3 × (2) + 5 × (0) = 6 |
| 5 | Svuota B nello scarico: 5 L | (1,0) | 2 | -1 | 3 × (2) + 5 × (-1) = 1 |
Qui x aumenta soltanto quando preleviamo 3 litri dalla sorgente; y diminuisce soltanto quando scarichiamo 5 litri. Versare da A a B non è svuotare A nello scarico: non cambia né x né y. Alla fine 3 × 2 + 5 × (-1) = 1.
3. Stato e coefficienti: due registri diversi
Da qui in avanti usiamo A = 5 litri e B = 3 litri. Lo stato (u,v) indica i contenuti reali di A e B. Invece x = riempimenti di A - svuotamenti di A nello scarico e y = riempimenti di B - svuotamenti di B nello scarico. Partiamo sempre da brocche vuote.
A ogni passo vale 5x + 3y = u + v: acqua prelevata meno acqua restituita uguale acqua rimasta. Durante un travaso cambiano u e v, ma non x e y. I coefficienti negativi non indicano acqua negativa: registrano più svuotamenti che riempimenti di quella brocca.
Per ottenere (4,0) il bilancio finale deve quindi essere 5x + 3y = 4. L’equazione da sola non specifica né l’ordine delle mosse né in quale brocca si trovi l’acqua.
4. Dall’equazione alla famiglia delle soluzioni
5 = 1 × 3 + 2 e 3 = 1 × 2 + 1, dunque MCD(5,3) = 1. Risalendo: 1 = 2 × 3 - 5. Moltiplichiamo per 4: 4 = 8 × 3 - 4 × 5, quindi una soluzione è (-4,8).
Tutte le soluzioni intere sono x = -4 + 3k e y = 8 - 5k, con k ∈ ℤ. Con k = 1 troviamo (-1,3); con k = 2 troviamo (2,-2). Ora traduciamo entrambe, senza interpretare i coefficienti come un elenco già ordinato di mosse.
Per approfondire il metodo generale
Il metodo generale delle equazioni diofantee, con teoria ed esempio · Laboratorio generale di ax + by = c.
5. Tre riempimenti della piccola, uno svuotamento della grande
La soluzione (x,y) = (-1,3) dice 4 = -5 + 3 × 3. La brocca B da 3 litri fa da sorgente dei travasi; A da 5 riceve l’acqua. Quando A si riempie, la scarichiamo; quando B si svuota, la riempiamo dalla sorgente.
| Passo | Operazione | Stato (A, B) | x | y | Bilancio totale |
|---|---|---|---|---|---|
| 0 | Partenza: entrambe vuote | (0,0) | 0 | 0 | 5 × (0) + 3 × (0) = 0 |
| 1 | Riempi B dalla sorgente: 3 L | (0,3) | 0 | 1 | 5 × (0) + 3 × (1) = 3 |
| 2 | Travasa da B ad A: 3 L | (3,0) | 0 | 1 | 5 × (0) + 3 × (1) = 3 |
| 3 | Riempi B dalla sorgente: 3 L | (3,3) | 0 | 2 | 5 × (0) + 3 × (2) = 6 |
| 4 | Travasa da B ad A: 2 L | (5,1) | 0 | 2 | 5 × (0) + 3 × (2) = 6 |
| 5 | Svuota A nello scarico: 5 L | (0,1) | -1 | 2 | 5 × (-1) + 3 × (2) = 1 |
| 6 | Travasa da B ad A: 1 L | (1,0) | -1 | 2 | 5 × (-1) + 3 × (2) = 1 |
| 7 | Riempi B dalla sorgente: 3 L | (1,3) | -1 | 3 | 5 × (-1) + 3 × (3) = 4 |
| 8 | Travasa da B ad A: 3 L | (4,0) | -1 | 3 | 5 × (-1) + 3 × (3) = 4 |
Servono 8 mosse: tre riempimenti di B, uno svuotamento di A e quattro travasi. Fermandoci a (1,3) avremmo già 4 litri totali, ma distribuiti: l’ultimo travaso è necessario per ottenere (4,0).
6. Due riempimenti della grande, due svuotamenti della piccola
La soluzione (x,y) = (2,-2) dice 4 = 2 × 5 - 2 × 3. Questa volta riempiamo A e travasiamo verso B; scarichiamo B quando è piena.
| Passo | Operazione | Stato (A, B) | x | y | Bilancio totale |
|---|---|---|---|---|---|
| 0 | Partenza: entrambe vuote | (0,0) | 0 | 0 | 5 × (0) + 3 × (0) = 0 |
| 1 | Riempi A dalla sorgente: 5 L | (5,0) | 1 | 0 | 5 × (1) + 3 × (0) = 5 |
| 2 | Travasa da A a B: 3 L | (2,3) | 1 | 0 | 5 × (1) + 3 × (0) = 5 |
| 3 | Svuota B nello scarico: 3 L | (2,0) | 1 | -1 | 5 × (1) + 3 × (-1) = 2 |
| 4 | Travasa da A a B: 2 L | (0,2) | 1 | -1 | 5 × (1) + 3 × (-1) = 2 |
| 5 | Riempi A dalla sorgente: 5 L | (5,2) | 2 | -1 | 5 × (2) + 3 × (-1) = 7 |
| 6 | Travasa da A a B: 1 L | (4,3) | 2 | -1 | 5 × (2) + 3 × (-1) = 7 |
| 7 | Svuota B nello scarico: 3 L | (4,0) | 2 | -2 | 5 × (2) + 3 × (-2) = 4 |
Questo percorso richiede 7 mosse. Al passo 6 lo stato è (4,3): il contenuto della grande è quello richiesto, ma il bilancio è ancora 5 × 2 + 3 × (-1) = 7. Solo scaricando B arriviamo a (4,0) e alla soluzione (2,-2).
7. Un procedimento sistematico, non una serie di tentativi
Formalizziamo operativamente l’interpretazione del libro. Scegli una direzione, per esempio A → B, e parti da (0,0):
- Se una brocca contiene l’obiettivo e l’altra è vuota, termina.
- Se una brocca contiene l’obiettivo e l’altra è piena, scarica quella piena e termina.
- Altrimenti, se B è piena, scaricala.
- Se A è vuota, riempila dalla sorgente.
- Negli altri casi travasa da A a B per
min(u, b - v)litri, poi ripeti.
La direzione B → A scambia i ruoli. Ogni mossa è determinata dallo stato, non da un’intuizione. Prima controlliamo il MCD e la capacità: se l’obiettivo è ammissibile, il procedimento lo raggiunge. I resti successivi percorrono i multipli del MCD; le capacità divise per il MCD sono coprime.
Il laboratorio mostra le due direzioni e i conteggi effettivamente ottenuti. Sono percorsi costruttivi: non attribuiamo al libro la nostra interfaccia o una ricerca automatica del minimo.
8. E le altre soluzioni intere? Aggiungiamo cicli a bilancio zero
La famiglia è infinita, ma gli stati delle brocche sono finiti: le soluzioni più lontane possono includere ripetizioni. Un ciclo che parte e torna a (0,0), riempiendo B e scaricando A, preleva cinque volte 3 litri e restituisce tre volte 5 litri. Il suo contributo è (Δx,Δy) = (-3,5) e 5 × (-3) + 3 × 5 = 0.
Eseguendo questo ciclo e poi il percorso di (-1,3) otteniamo (-4,8): stessa acqua finale, più operazioni. Il ciclo opposto contribuisce (3,-5). In generale gli incrementi sono (b/g,-a/g) o l’opposto, con g = MCD(a,b).
Nel laboratorio puoi scegliere k: viene costruito un percorso con quella precisa coppia di coefficienti, aggiungendo il numero necessario di cicli chiusi prima del percorso finale. La riproduzione è limitata a 2.000 mosse per leggibilità; un limite di visualizzazione non significa impossibilità matematica.
9. Quando si può fare e quando no
Per capacità intere positive a e b e obiettivo c, ottenere c litri isolati è possibile se e solo se MCD(a,b) ∣ c e 0 ≤ c ≤ max(a,b), nel modello con sorgente e scarico. La divisibilità riguarda l’equazione; il limite riguarda il recipiente finale. Se c = 0, basta non fare nulla.
4x + 6y = 1: impossibile, perché il MCD è 2 e non divide 1.- Con 4 e 6, ottenere 2 è possibile: stati
(0,0) → (0,6) → (4,2) → (0,2). - Con 5 e 3, l’equazione per 8 ha soluzioni intere, ma nessuna brocca può contenere 8 litri da sola.
- Con 6 e 10, per ottenere 8:
(0,0) → (0,10) → (6,4) → (0,4) → (4,0) → (4,10) → (6,8) → (0,8). Il bilancio è2 × 10 - 2 × 6 = 8. - Con 2 e 7, per ottenere 1:
(0,0) → (0,7) → (2,5) → (0,5) → (2,3) → (0,3) → (2,1) → (0,1). - Con 6 e 9, ottenere 4 è impossibile: il MCD è 3.
In ciascuna sequenza l’ordine delle coordinate è quello delle capacità appena indicate. Nel laboratorio le lettere A e B restano fisse, anche se A è la brocca più piccola.
10. Una soluzione corretta non è necessariamente la più breve
Per 5 e 3, il percorso di 7 mosse è più breve di quello di 8. Non basta minimizzare |x| + |y|: per entrambe le coppie vale 4, ma il numero dei travasi cambia. Se l’altra brocca può restare piena, bastano invece 6 mosse: è un altro obiettivo.
Per certificare il minimo si può usare una visita in ampiezza (BFS) del grafo degli stati, contando ogni riempimento, svuotamento o travaso come una mossa. Questa è una verifica algoritmica distinta dal metodo a conteggi. Il laboratorio evidenzia il numero di mosse dei percorsi mostrati, senza chiamarli automaticamente ottimi.
11. La variante chiusa 8–5–3 è un altro modello
Se il recipiente da 8 parte pieno e non esistono sorgente né scarico, rimangono solo i travasi. Per dividere gli 8 litri in due parti da 4, con stati ordinati come (8,5,3), un percorso è:
(8,0,0) → (3,5,0) → (3,2,3) → (6,2,0)
→ (6,0,2) → (1,5,2) → (1,4,3) → (4,4,0)Qui il totale resta sempre 8: non possiamo trasferire senza modifiche l’interpretazione dei prelievi e degli scarichi del modello aperto. Il nuovo laboratorio è dedicato alle due brocche con sorgente e scarico.
12. Come leggere le due barre del laboratorio
Le due barre condividono la stessa scala in litri: la brocca da 5 risulta più alta di quella da 3. Il bordo indica la capacità; l’acqua colorata indica il contenuto attuale. Sotto trovi lo stato, i conteggi x e y, l’acqua prelevata e quella scaricata. Il bilancio viene verificato a ogni mossa.
Premi Avanti per una sola operazione, Indietro per rileggerla, oppure avvia la riproduzione automatica a una mossa al secondo. Puoi cambiare direzione, scegliere k o tornare all’inizio. La tabella riporta l’intero percorso e distingue i cicli dal tratto finale.
L’idea da portare via è semplice: l’equazione dice quanto; il procedimento costruisce come; gli stati verificano che ogni mossa sia lecita.