SCACCHIERE DI NEPERO
(alle origini dell’aritmetica binaria)
by corrado bonfanti - 2009
Antefatto
algoritmi aritmetici degli scribi
dell’antico Egitto
Algoritmo della moltiplicazione per raddoppio
Un esempio: 237  45 = ?
Algoritmo della moltiplicazione per raddoppio
Un esempio: 237  45 = ?
1
2
4
8
16
32
64
128
…...
Passo 1
Avere a disposizione la tabella (precompilata) delle potenze di 2.
Algoritmo della moltiplicazione per raddoppio
Un esempio: 237  45 = ?
1
2
4
8
16
32
45
64
128
…...
Passo 2
Posizionare il moltiplicatore 45 in corrispondenza della potenza
di 2 immediatamente inferiore ad esso ……
Algoritmo della moltiplicazione per raddoppio
Un esempio: 237  45 = ?
1
1-1=0
2
4
5-4=1
8
13-8=5
16
32
45-32=13
64
128
…...
Passo 2
…… e scomporlo sottraendo di volta in volta la potenza di 2 più
grande possibile.
Algoritmo della moltiplicazione per raddoppio
Un esempio: 237  45 = ?
1
1-1=0
237
2
4
5-4=1
8
13-8=5
16
32
45-32=13
64
128
…...
Passo 3
Posizionare il moltiplicando 237 sulla prima riga ……
Algoritmo della moltiplicazione per raddoppio
Un esempio: 237  45 = ?
1
1-1=0
237
2
474
4
5-4=1
948
8
13-8=5
1896
16
32
3792
45-32=13
64
128
…...
Passo 3
…… e raddoppiarlo ripetutamente.
7584
Algoritmo della moltiplicazione per raddoppio
Un esempio: 237  45 = ?
1
1-1=0
237
2
237
474
4
5-4=1
948
948
8
13-8=5
1896
1896
16
32
3792
45-32=13
7584
7584
64
128
…...
Passo 4
Scegliere i raddoppi corrispondenti alla scomposizione del
moltiplicatore.
Algoritmo della moltiplicazione per raddoppio
Un esempio: 237  45 = ?
1
1-1=0
237
2
237
474
4
5-4=1
948
948
8
13-8=5
1896
1896
16
32
3792
45-32=13
64
128
…...
Passo 5
Fare la somma ……
7584
7584
10665
Algoritmo della moltiplicazione per raddoppio
Un esempio: 237  45 = ?
1
1-1=0
237
2
237
474
4
5-4=1
948
948
8
13-8=5
1896
1896
16
3792
32
45-32=13
64
… ed ecco il risultato: 237  45 = 10665
128
…...
7584
7584
Corollario
Ritorniamo alla scomposizione di 45 ……
1
1-1=0
2
4
5-4=1
8
13-8=5
16
32
64
128
……
45-32=13
Corollario
…… associamo 1 alle righe utilizzate ……
1
1-1=0
1
4
5-4=1
1
8
13-8=5
1
45-32=13
1
2
16
32
64
128
…...
Corollario
…… e associamo 0 alle righe non utilizzate.
1
1-1=0
2
1
0
4
5-4=1
1
8
13-8=5
1
16
32
64
128
……
0
45-32=13
1
Corollario
Gli scribi egizi non potevano esserne consapevoli, ma ……
1
1-1=0
2
1
0
4
5-4=1
1
8
13-8=5
1
16
32
64
128
……
0
45-32=13
1
Corollario
Gli scribi egizi non potevano esserne consapevoli, ma ……
1
1-1=0
2
1
0
4
5-4=1
1
8
13-8=5
1
16
32
0
45-32=13
1
64
128
……
…… sorpresa! Avevano inventato la
numerazione binaria, quella che oggi si usa nei
computer: 4510 = 1011012
Algoritmo della divisione per raddoppio e tentativi
Un esempio: 539 : 41 = ?
41
Passo 1
Prendere il divisore 41 ……
Algoritmo della divisione per raddoppio e tentativi
Un esempio: 539 : 41 = ?
41  1 = 41
2=
82
 4 = 164
 8 = 328
 16 = 656
……
Passo 1
…… e raddoppiarlo ripetutamente.
Algoritmo della divisione per raddoppio e tentativi
Un esempio: 539 : 41 = ?
41  1 = 41
2=
82
 4 = 164
 8 = 328
 16 = 656
……
Passo 2
Dalla colonna dei raddoppi, scegliere, per tentativi, i numeri
la cui somma S sia minore del dividendo 539 e tale che la
differenza 539 - S sia minore del divisore 41.
Algoritmo della divisione per raddoppio e tentativi
Un esempio: 539 : 41 = ?
41
41  1 = 41
2=
82
 4 = 164
164
 8 = 328
328
 16 = 656
……
Passo 3
I numeri che “vanno bene” nel nostro esempio sono quelli
trascritti in rosso.
(N.B. Si procede per tentativi, ma la soluzione è unica.)
Algoritmo della divisione per raddoppio e tentativi
Un esempio: 539 : 41 = ?
41
41  1 = 41
2=
82
 4 = 164
164
 8 = 328
328
 16 = 656
Passo 3
Infatti, vedi sopra.
41 + 164 + 328 = 533 < 539
e
539 - 533 = 6 < 41
Algoritmo della divisione per raddoppio e tentativi
Un esempio: 539 : 41 = ?
41
41  1 = 41
2=
82
 4 = 164
164
 8 = 328
328
 16 = 656
41 + 164 + 328 = 533 < 539
e
539 - 533 = 6 < 41
Il risultato è quindi
539 : 41 = 1 + 4 + 8 = 13 col resto di 6.
Algoritmo della divisione per raddoppio e tentativi
Un esempio: 539 : 41 = ?
41  1
1
2
0
4
1
8
1
 16
Corollario: 1310 = 11012
Scacchiere binario di Nepero
(dalla Rabdologia del 1617)
Dopo più di duemila anni, all’inizio del XVII secolo, Nepero adotta
(probabilmente reinventandolo) il metodo egizio per la numerazione
binaria.
Metodo che è il fondamento dello scacchiere binario.
SCACCHIERE BINARIO DI NEPERO
Ai bordi di uno scacchiere sono annotate, in ordine crescente
dal basso verso l’alto, le potenze di 2
col. 8192 = 213
riga 512 = 29
col. 16 = 24
Ciascuna casella assume un valore diverso a seconda che la si
consideri appartenente a una riga in diagonale ( ) oppure a
una delle colonne parallele ai lati (
).
SCACCHIERE BINARIO DI NEPERO
Un esempio: 19  13 = ?
SCACCHIERE BINARIO DI NEPERO
Un esempio: 19  13 = ?
19
Passo 1
Scomporre il moltiplicando in potenze di 2 ottenendo
19 = 16 [=24] + 2 [=21] + 1 [=20]
e impostare la sua rappresentazione posizionando i gettoni nelle
caselle appropriate.
SCACCHIERE BINARIO DI NEPERO
Un esempio: 19  13 = ?
13
Passo 2
Scomporre il moltiplicatore in potenze di 2 ottenendo
13 = 8 [=23] + 4 [=22] + 1 [=20]
e replicare nelle colonne appropriate la disposizione dei gettoni già
posizionati.
SCACCHIERE BINARIO DI NEPERO
Un esempio: 19  13 = ?
Passo 3
Individuare, secondo le righe orizzontali, il valore delle caselle
“gettonate” …...
SCACCHIERE BINARIO DI NEPERO
Un esempio: 19  13 = ?
128 +
64 +
16 + 16 +
8+8+
4+
2+
1=
Risultato 19  13 = 247
Passo 3
Individuare, secondo le righe orizzontali, il valore delle caselle
“gettonate” …… e sommarli, con le rispettive molteplicità.