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à.