:.. SystemSoft.it ..:

  • Aumenta dimensione caratteri
  • Dimensione caratteri predefinita
  • Diminuisci dimensione caratteri
Home Pillole Generiche Operazioni matematiche Trasformare una percentuale in una frazione

Trasformare una percentuale in una frazione

Stampa

Data una percentuale si vuole riportare la stessa sotto forma di notazione frazionaria.

Come esempio consideriamo 40% che vedremo diventare 2/5.

Sappiamo che una percentuale è di fatto una frazione (40% = 40/100).

Per ottenere tale frazione (40/100) ridotta ai minimi termini (ossia 2/5) è utile ricorrere al calcolo del M.C.D. (Massimo Comun Divisore) tra numeratore e denominatore.

Per trovare il M.C.D. tra due numeri consideriamo due metodi:

  • Il metodo di scomporre ogni numero in fattori primi e moltiplicando i fattori comuni

Il metodo di scomporre ogni numero in fattori primi e moltiplicando i fattori comuni (ossia come moltiplicazioni di numeri primi che sono 1, 2, 3, 5, 7, 9, 11, 13, 17, 19, 23, ...), considerati una sola volta con il loro minimo esponente. Vediamo come:

Scomponiamo in fattori primi (per convenienza si inizia dal numero primo più piccolo escludendo l'1):

40 | 2
20 | 2
10 | 2
5 | 5

Perciò 40 è divisibile per 2 x 2 x 2 x 5 ossia 40 = 23 x 5

100 | 2
50 | 2
25 | 5
5 | 5

Perciò 100 è divisibile per 2 x 2 x 5 x 5 ossia 100 = 22 x 52

Moltiplichiamo i fattori comuni, considerati una sola volta con il loro minimo esponente, che in questo caso 22 x 51 = 20 e otteniamo così il M.C.D.

Questo metodo di calcolo del M.C.D. è utilizzabile, nella pratica, solo per numeri molto piccoli: la scomposizione in fattori primi di un numero richiede in generale troppo tempo.

  • Il metodo con l'utilizzo dell'algoritmo di Euclide

Un metodo molto più efficiente per il calcolo del M.C.D. è fornito dall'algoritmo di Euclide: si divide 100 per 40 ottenendo un quoziente di 2 e un resto di 20. Infine si divide 40 per 20 ottenendo un resto di 0, il che significa che 20 è il massimo comun divisore.

La regola è quella di calcolare il resto tra i due numeri che deve essere sostituito al numero maggiore fino a quando questo resto non è zero; il numero rimasto è il M.C.D.

Ottenuto il M.C.D. possiamo ottenere la frazione ridotta ai minimi termini.

Una volta ottenuto il M.C.D. andiamo a dividerlo sia per il numeratore che per il denominatore ottenendo così la frazione ridotta ai minimi termini:


40 / 20 = 2
-------- ---
100 / 20 = 5


Applicando tale concetto alla programmazione considerando l'algoritmo di Euclide, passiamo ad implementare il seguente codice Java da personalizzare secondo per le proprie esigenze:

public static void main (String[] saParam) {
float f = 32.4F;
int iMCD = mcd(f);
System.out.println("MCD: " + iMCD);
System.out.println("Num: " + (int) (f * 10000 / iMCD));
System.out.println("Den: " + 1000000 / iMCD);
}

// Algoritmo di Euclide
private static int mcd(float f) {
int a = (int) (f * 10000);
int b=1000000;
int t;

while (b != 0) {
t = b;
b = a % b;
a = t;
}

return a;
}


Descrizione:
Prendiamo come esempio 32,1234% da trasformare in frazione
Per trovare il M.C.D. viene utilizzata il metodo “mcd(float f)” alla quale viene passato il numeratore (il denominatore non serve in quanto stiamo considerando percentuali e quindi impostato a codice).
La variabile “a” contiene il numeratore, la variabile “b” il denominatore; 10000 serve per togliere i decimali (max 4); viene moltiplicato sia per il numeratore che per il denominatore.

 

32,1234 x 10.000    =    321.234 
------------------ ------------
100 x 10.000 = 1.000.000

 

A questo punto il ciclo while, mediante l'applicazione dell'algoritmo di Euclide, ricava il M.C.D. che viene restituito al main.

Successivamente si divide sia il numeratore che il denominatore per il M.C.D. ottenuto:

 

 321.234  / iMCD    =    newNum 
------------------ -----------
1.000.000 / iMCD = newDen

 

Il risultato è la notazione frazionaria ridotta ai minimi termini.

Ultimo aggiornamento Giovedì 27 Settembre 2012 14:37