Gli algoritmi per la divisione Scritto da Maria Rispoli Domenica 09 Gennaio 2011 20:01 - Ultimo aggiornamento Martedì 01 Marzo 2011 09:47 Una delle caratteristiche principali del sistema di numerazione indo-arabico, è quella di poter eseguire, senza l’aiuto di strumenti e con procedimenti relativamente semplici e veloci, calcoli scritti (e dunque controllabili successivamente). L’abilità nel far di conto viene spesso indicata come uno dei fattori che contribuirono ad una rapida espansione e alla supremazia nel commercio dei mercanti toscani. Gli algoritmi che apprendiamo a scuola per eseguire addizioni, sottrazioni, moltiplicazioni e divisioni e che paiono rigide regole immutabili hanno una storia fatta di tentativi e di accorgimenti diversi, anche dovuti ad esigenze diverse (velocità, sicurezza, semplicità, ...) che ha origine nell’India del VI secolo d.C. e prosegue nel contributo di matematici arabi e persiani del Medioevo fino al Rinascimento europeo ed in particolare italiano. I documenti per ricostruire la matematica pre-greca a disposizione degli studiosi sono piuttosto scarsi e si limitano a qualche papiro e all’analisi di fonti indirette come le opere di architettura, le iscrizioni, le arti figurative. Il più famoso e completo testo matematico a noi noto è il Papiro di Rhind che risale al 1650 a.C., copia di un esemplare più antico di due secoli. All’inizio del papiro si legge: “Regole per scrutare la natura e per conoscere tutto ciò che esiste, ogni mistero, ogni segreto”. Esso contiene tavole di calcolo e 87 problemi ripartiti in vari gruppi, di natura pratica connessi con le attività di ingegneria edile, di agricoltura, di amministrazione, di approvvigionamento ecc., esposti con intento didattico. 1/9 Gli algoritmi per la divisione Scritto da Maria Rispoli Domenica 09 Gennaio 2011 20:01 - Ultimo aggiornamento Martedì 01 Marzo 2011 09:47 Il papiro è scritto in ieratico, la scrittura corsiva egizia, usata per scrivere con pennello e inchiostro sui papiri, che si diffonde dal 2400 a.C. circa accanto alla più antica scrittura monumentale geroglifica. Gli egizi per eseguire moltiplicazioni e divisioni usavano un procedimento basato su raddoppi successivi. Dovendo ad esempio dividere 156 per 12 scrivevano in colonna i multipli di 12 a fianco dei fattori 1, 2, 4, 8, …e scelte poi le righe tali che nella colonna di destra compaiano quei multipli del 12 la cui somma dà 156 si sommano a sinistra i fattori corrispondenti e il risultato dà il quoziente, cioè 13. Ovviamente è possibile trovare esattamente il dividendo solo se la divisione è esatta. In caso contrario si può ottenere il quoziente intero approssimato trovando l’intero minore, ma più vicino possibile al dividendo. Ma si può anche trovare il risultato esatto servendosi delle frazioni introducendo dopo le duplicazioni, quando le somme parziali superano il dividendo, le divisioni per due, (o comunque una successione di divisioni). Dovendo ad esempio eseguire 19:8 nel Papiro di Rhind si procede così: 2/9 Gli algoritmi per la divisione Scritto da Maria Rispoli Domenica 09 Gennaio 2011 20:01 - Ultimo aggiornamento Martedì 01 Marzo 2011 09:47 La regola comunemente usata oggi per eseguire la divisione ha raggiunto l’attuale espressione formale nel XV secolo, ed è detta a danda. Tale nome pare derivi dal fatto che ottenuta una cifra del quoziente, il dividendo deve dare una nuova cifra da aggiungere al precedente resto. Si fa inoltre una distribuzione tra schema a danda lunga ea danda corta . Nella danda corta si scrivono solo i resti. Questo è un metodo di divisione che non si usa più, ma che è utile ricordare quando si affronta la divisione tra polinomi. Prima del XV secolo la divisione veniva eseguita con un metodo chiamato a galera o a battello. Il nome deriva dalla forma dello schema di distribuzione delle cifre che ai matematici medievali ricordava la forma di una nave a remi. Il metodo a galera è stato usato fino al XVII secolo. Il brano che segue, che riporta un esempio, è tratto da un testo del XVI secolo, il Libro di Arimetricha Dionigi Gori. , di “Volendo partire 3868 per 12 a galera ne farai 3 battute in questo modo; acomcia il numero che voi dividere (come vedi) in margine e sotto metici il partitore ch’è 12, coè 12 in 38 c’entra 3 3/9 Gli algoritmi per la divisione Scritto da Maria Rispoli Domenica 09 Gennaio 2011 20:01 - Ultimo aggiornamento Martedì 01 Marzo 2011 09:47 volte, metelo in una casella fatta di linee dietro al numero che voi partire, et multiplica per 3, che c’entra, via 12 ch’è il partitore, fa 36, sotrallo di 38 resta 2, metelo sopra al 8 e questa è la prima batutta. Ora segue alla seconda batutta: e mette il partitore innanzi coè il 2 sotto il 6 el uno sotto el 2, come vedi in margine e dirai 12 in 26 quante volte c’entra, 2 volte, metelo dietro al 3 nella casella e multiplica 2 vie 12 fa 24, trallo di 26 resta 2, metelo sopra al 6 et cassa il 26 et il 12 sotto. Et segue alla terza batutta: rimette il partitore avanti il 2 sotto lo 8 el uno sotto il 2, e dirai 12 in 28 quante volte vi entra, trovarai v’entra 2 volte, pollo nella casella dietro al 2 et multiplica 2 vie 12 fa 24, trallo di 28 resta 4, pollo sopra al 8, cassa il 28 e il 22 et arai partito 3868 et ne verà 322 4/12 e cossì farai le simili” [1] . Prima di vedere un algoritmo per la divisione facciamo una osservazione: dati due numeri naturali a e b, l’algoritmo della somma, applicato alle rappresentazioni decimali di a e b, ci dà la rappresentazione decimale di a + b , e analogamente per il prodotto. 4/9 Gli algoritmi per la divisione Scritto da Maria Rispoli Domenica 09 Gennaio 2011 20:01 - Ultimo aggiornamento Martedì 01 Marzo 2011 09:47 L’algoritmo della divisione, invece, applicato alle rappresentazioni decimali di a (che ora viene chiamato dividen do )e b (il divisore ), ci fornisce due numeri, il quoziente q e il resto r della divisione di a per b , che soddisfano la relazione: a=b*q+r Il resto r, inoltre, ha la proprietà di essere sempre minore del divisore b. Ad esempio, dati 5 e 2, l’algoritmo della divisione fornisce come quoziente 2 e come resto 1, dato che: 5 = 2 * 2 + 1, mentre se lo applichiamo a 2 e 5 otteniamo quoziente 0 e resto 2, dato che: 2 = 5 * 0 + 2, e 2 5/9 Gli algoritmi per la divisione Scritto da Maria Rispoli Domenica 09 Gennaio 2011 20:01 - Ultimo aggiornamento Martedì 01 Marzo 2011 09:47 Esaminiamo ora l’algoritmo in dettaglio, anche in questo caso direttamente in un caso concreto. Dividiamo, ad esempio, 3073 per 37. Cominciamo con il selezionare, nel numero 3073, gruppi di cifre a partire da sinistra. Otteniamo: 3, 30, 307. I primi due gruppi selezionati danno un numero minore di 37, il terzo dà invece 307, che è maggiore di 37. A questo punto, ci fermiamo, e osserviamo che: 307 = 8 * 37 + 11, e 3073 = 307 * 10 + 3. Allora possiamo ragionare nel modo seguente: 3073 = 307 * 10 + 3 = (8 * 37 + 11) * 10 + 3 = 80 * 37 + 113 che ci darebbe quoziente 80 e resto 113. 6/9 Gli algoritmi per la divisione Scritto da Maria Rispoli Domenica 09 Gennaio 2011 20:01 - Ultimo aggiornamento Martedì 01 Marzo 2011 09:47 Ma 113 > 37, per cui proseguiamo osservando che: 113 = 3 * 37 + 2 e quindi abbiamo: 3073 = 80 * 37 + 3 * 37 + 2 = 83 * 37 + 2 Abbiamo così ottenuto che 3073 diviso per 37 dà quoziente 83 e resto 2. L’algoritmo solito per la divisione è proprio una codifica di questo ragionamento. Cominciamo selezionando il più piccolo gruppo di cifre del dividendo, cominciando da sinistra, in modo tale da avere un numero maggiore o uguale del divisore. Nel nostro caso otteniamo 307. Dividiamo ora 307 per 37, ottenendo quoziente 8 e resto 11. Per trovarli possiamo “indovinare” il quoziente 8, procedendo per tentativi, e calcolare il resto moltiplicando 37 per 8 e sottraendo da 307. È anche vero (e si potrebbe dimostrare rigorosamente) che il quoziente da indovinare, nel nostro caso 8, deve necessariamente essere minore di 10, quindi sarà rappresentato da una sola cifra (questo proprio perché abbiamo selezionato il più piccolo gruppo di cifre che danno un numero maggiore o uguale del divisore), quindi ce la caveremo con, al più, 9 tentativi. Vedremo 7/9 Gli algoritmi per la divisione Scritto da Maria Rispoli Domenica 09 Gennaio 2011 20:01 - Ultimo aggiornamento Martedì 01 Marzo 2011 09:47 tra poco che, comunque, esiste una strategia che può venirci in aiuto. In questo modo abbiamo ottenuto la prima cifra del quoziente finale. A questo punto “abbassiamo” la cifra 3 del divisore, il che significa proprio moltiplicare per 10 il resto precedente e sommare 3, ottenendo 113. Dividiamo poi 113 per 37, come prima, ottenendo sempre un quoziente a una sola cifra, che è l’ultima cifra del quoziente finale, e un resto, che dà il resto finale. Il procedimento che abbiamo appena visto si riassume di solito in forma grafica, ad esempio così: Ritorniamo per un momento al primo passo del procedimento, quando dobbiamo trovare il quoziente di 307 per 37 (che, ricordiamo, consisterà di una sola cifra decimale, nel nostro caso 8). Abbiamo detto che il quoziente si trova per tentativi, e che occorrono al più nove tentativi. Esiste una strategia per “indovinare” il quoziente che può semplificare il procedimento: si comincia provando a dividere le prime due cifre di 307 per la prima cifra di 37, ossia 30 per 3; provando a moltiplicare 3 per 1, 2, eccetera, fermandosi all’ultimo numero che è ancora minore o uguale a 30. Nel nostro caso, poiché 3 * 9 = 27, si prende 9. Moltiplicando 37 * 9 si ottiene 333, che è maggiore di 307, dunque 9 è troppo grande. Diminuiamo allora il quoziente di una unità, e proviamo con 8. Poiché 37 * 8 = 296, che è minore di 307, il quoziente cercato è 8. Il resto 11 si trova calcolando 37 * 8 e sottraendolo da 307, dopo di che si continua. Al passo successivo, per “indovinare” il quoziente di 113 per 37, si può ancora provare a dividere 11 per 3, sempre utilizzando le tabelline, e si ottiene 3. Poiché 37 * 3 = 111 è minore di 113, il quoziente 3 è quello cercato, e si conclude. Questa strategia funziona bene, almeno in certi casi. 8/9 Gli algoritmi per la divisione Scritto da Maria Rispoli Domenica 09 Gennaio 2011 20:01 - Ultimo aggiornamento Martedì 01 Marzo 2011 09:47 Infatti, si può dimostrare in modo rigoroso [2] che: La cifra “indovinata” con questa strategia è sempre maggiore o uguale di quella giusta. In altre parole, si può sbagliare, in questo modo, solo per eccesso, e quindi basta, per correggere l’errore, provare cifre più piccole. Se la prima cifra del divisore è maggiore o uguale a 5, allora l’errore che si può commettere applicando questa strategia è al più di due unità, e sono quindi sufficienti al più due passi per correggerlo. Nel primo caso dell’esempio, in effetti, siamo stati fortunati, ed è bastata una sola correzione, anche se la prima cifra del divisore era 3. Osserviamo che dati due valori interi positivi X e Y è possibile fornire come risultato Z la divisione di X per Y utilizzando solo le operazioni di somma e sottrazione e il confronto fra i valori. [1] Bottazzini, Freguglia, T. Rigatelli, Fonti per la Storia della Matematica. Sansoni. [2] L. Childs, Algebra: un’introduzione concreta, ETS Editrice, Pisa (1989). 9/9