(alle origini dell’aritmetica binaria) SCACCHIERE DI NEPERO (alle origini dell’aritmetica binaria) by corrado bonfanti - 2009
algoritmi aritmetici degli scribi dell’antico Egitto 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 64 128 …... 45 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 2 4 8 16 32 64 128 …... 1-1=0 5-4=1 13-8=5 45-32=13 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 2 4 8 16 32 64 128 …... 1-1=0 5-4=1 13-8=5 45-32=13 237 Passo 3 Posizionare il moltiplicando 237 sulla prima riga ……
Algoritmo della moltiplicazione per raddoppio Un esempio: 237 45 = ? 1 2 4 8 16 32 64 128 …... 1-1=0 5-4=1 13-8=5 45-32=13 237 474 948 1896 3792 7584 Passo 3 …… e raddoppiarlo ripetutamente.
Algoritmo della moltiplicazione per raddoppio Un esempio: 237 45 = ? 1 2 4 8 16 32 64 128 …... 1-1=0 5-4=1 13-8=5 45-32=13 237 474 948 1896 3792 7584 237 948 1896 7584 Passo 4 Scegliere i raddoppi corrispondenti alla scomposizione del moltiplicatore.
Algoritmo della moltiplicazione per raddoppio Un esempio: 237 45 = ? 1 2 4 8 16 32 64 128 …... 1-1=0 5-4=1 13-8=5 45-32=13 237 474 948 1896 3792 7584 237 948 1896 7584 10665 Passo 5 Fare la somma ……
Algoritmo della moltiplicazione per raddoppio Un esempio: 237 45 = ? 1 2 4 8 16 32 64 128 …... 1-1=0 5-4=1 13-8=5 45-32=13 237 474 948 1896 3792 7584 237 948 1896 7584 … ed ecco il risultato: 237 45 = 10665
Ritorniamo alla scomposizione di 45 …… Corollario Ritorniamo alla scomposizione di 45 …… 1 2 4 8 16 32 64 128 …… 1-1=0 5-4=1 13-8=5 45-32=13
…… associamo 1 alle righe utilizzate …… Corollario …… associamo 1 alle righe utilizzate …… 1 2 4 8 16 32 64 128 …... 1-1=0 5-4=1 13-8=5 45-32=13 1
…… e associamo 0 alle righe non utilizzate. Corollario …… e associamo 0 alle righe non utilizzate. 1 2 4 8 16 32 64 128 …… 1-1=0 5-4=1 13-8=5 45-32=13 1
Gli scribi egizi non potevano esserne consapevoli, ma …… Corollario Gli scribi egizi non potevano esserne consapevoli, ma …… 1 2 4 8 16 32 64 128 …… 1-1=0 5-4=1 13-8=5 45-32=13 1
Gli scribi egizi non potevano esserne consapevoli, ma …… Corollario Gli scribi egizi non potevano esserne consapevoli, ma …… 1 2 4 8 16 32 64 128 …… 1-1=0 5-4=1 13-8=5 45-32=13 1 …… 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 = 2 = 4 = 8 = 16 = …… 41 82 164 328 656 Passo 1 …… e raddoppiarlo ripetutamente.
Algoritmo della divisione per raddoppio e tentativi Un esempio: 539 : 41 = ? 41 1 = 2 = 4 = 8 = 16 = …… 41 82 164 328 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 1 = 2 = 4 = 8 = 16 = …… 41 82 164 328 656 41 164 328 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 1 = 2 = 4 = 8 = 16 = 41 82 164 328 656 41 164 328 41 + 164 + 328 = 533 < 539 e 539 - 533 = 6 < 41 Passo 3 Infatti, vedi sopra.
Algoritmo della divisione per raddoppio e tentativi Un esempio: 539 : 41 = ? 41 1 = 2 = 4 = 8 = 16 = 41 82 164 328 656 41 164 328 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 2 4 8 16 1 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 col. 16 = 24 riga 512 = 29 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 = Passo 3 Individuare, secondo le righe orizzontali, il valore delle caselle “gettonate” …… e sommarli, con le rispettive molteplicità. Risultato 19 13 = 247