La moltiplicazione a reticolo, nota anche come moltiplicazione araba, moltiplicazione della gelosia, moltiplicazione del setaccio, shabakh, diagonale e quadrati veneziani, è un metodo di moltiplicazione che utilizza un reticolo per moltiplicare due numeri a più cifre. È matematicamente identico all’algoritmo di moltiplicazion più comunemente usato, ma suddivide il processo in passaggi più piccoli, che alcuni effettivamente trovano più facili da usare.
Il metodo era già nato nel medioevo ed è stato utilizzato per secoli in molte culture diverse. Viene ancora insegnato in alcuni programmi di studio oggi.
Implementazione dell’algoritmo in Python
(fonte)
//for simplicity num1=[2,2,4] , num2=[5,3] int[] latticeMultiplication ( int num1[], int num2[]){ //let i points to the end of the array [3] int i = sizeOf(num2); int j ; int currentValue; //set the size of the result array and make it contains zeros int size = sizeOf(num1) + sizeOf(num2); int result[size]; loop through all elements in result[] and make them 0 //those pointers to maintain the result array int pointer1 = sizeOf(result); //initially points to [0] int pointer2 = pointer1 -1; while( i>=0){ j = sizeOf(num1); //points to [4] while( j>=0){ CurrentValue = num1[j] * num2[i]; //remember that if the result of multiplication has two digits //we need to add the most left digit to the next slide //otherwise we just add the currentvalue to whatever there if(CurrentValue < 10 ) result[pointer1] = result[pointer1] + CurrentValue; else { result[pointer1] = result[pointer1] + CurrentValue%10; //most right digit result[pointer2] = result[pointer2] + CurrentValue/10; } //update pointers going backwards because we have started from the end of arrays j--; //it will point to [2]...[2] pointer1--; pointer2--; }//end of inner while i--; // go to the next number in the array }//while //now we need to perform sum calculations of result array //because in case of large numbers will have an array like [1,4,16,7,0] //and this will not be an acceptable answer cause the answer should be 15670 int answer[sizeOf(result)]; return answer = sumCal(result); }
Metodo della moltiplicazione araba passo passo
Viene disegnata una griglia e ogni cella viene divisa diagonalmente. I due moltiplicandi del prodotto da calcolare sono scritti rispettivamente lungo il lato superiore e destro del reticolo, con una cifra per colonna in alto per il primo moltiplicando (il numero scritto da sinistra a destra) e una cifra per riga in basso il lato destro per il secondo moltiplicando (il numero scritto dall’alto verso il basso). Quindi ciascuna cella del reticolo viene riempita con il prodotto della sua cifra di colonna e di riga.
Consideriamo ad esempio la moltiplicazione di 58 per 213.
Usa il codice
189ed7ca010140fc2065b06e3802bcd5
per ricevere 5 € dopo l’iscrizione
Dopo aver scritto i moltiplicandi sui lati, consideriamo ogni cella cominciando da quella in alto a sinistra. In questo caso, la cifra della colonna è 5 e la cifra della riga è 2. Scrivi il loro prodotto, 10, nella cella, con la cifra 1 sopra la diagonale e la cifra 0 sotto la diagonale. Se nel prodotto c’è una sola cifra nella posizione delle decine, basta semplicemente riempire la posizione delle decine con uno 0. Il procedimento non è molto intuitivo perchè si basa sulle diagonali ed è, a suo modo, poco facile da usare e rappresentare, anche se presenta il vantaggio di non dover gestire i resti delle moltiplicazioni. Ad ogni modo: dopo che tutte le celle sono state riempite in questo modo, le cifre in ciascuna diagonale vengono sommate, lavorando dalla diagonale in basso a destra verso quella in alto a sinistra. Ogni somma diagonale viene riportata dove termina la diagonale, e nel caso in cui la somma contenesse più di una cifra, il valore delle decine verrebbe in tal caso portato nella diagonale successiva.
Siamo arrivati al risultato: i numeri vengono riempiti a sinistra e in fondo alla griglia e la risposta sono i numeri letti in basso (a sinistra) e trasversalmente (in basso).
- 4 compare come ultima cifra visto che c’è solo un 4 sulla diagonale
- 8+2+5=15, quindi 5 (penultima cifra) con riporto di 1 nella diagonale successiva
- 6+5+1+1=13, quindi 3 (terzultima cifra) con riporto di 1 nella diagonale successiva
- 1+1=2 e segno solo 2
- 1 e lascio 1
Nell’esempio mostrato, il risultato della moltiplicazione di 58 per 213 è 12354.
👇 Da non perdere 👇
- Gratis 🎉
- Marketing & SEO 🌪
- Programmare 🖥
- Spiegoni artificiali 🎓
- WordPress 🤵
- 💬 Il nostro canale Telegram: iscriviti
- 🔴 Come sapere se un hosting supporta PHP-FPM
- 🟢 Cosa sono i dBm (decibel milliWatt) dei cellulari e cosa misurano
- 🔵 Errore err-5 Postepay: cosa significa, cosa fare