In questo post mostro poche linee di codice che permettono di calcolare la radice ennesima (nth-root) di un numero in C#. Prima di buttar giù queste righe di codice mi sono chiesto se nel framework ci fosse qualche cosa che facesse al caso mio... risposta negativa :(  Con l' ausilio di un pò di matematica però si può ovviare a ciò, sfruttando la definizione di logaritmo e le proprietà che lo legano alla funzione esponenziale. Possiamo infatti scrivere:

La dimostrazione di questa formula è piuttosto semplice in quanto la prima uguaglianza è una proprietà che deriva dalla nozione di base di radice, mentre la seconda relazione può essere dimostrata applicando il logaritmo ad ambo i membri.

   1: class Program
   2:     {
   3:         static void Main(string[] args)
   4:         {
   5:             int a, n, x;
   6:             a = n = x = 0;
   7:             a = 243;
   8:             n = 5;
   9:             //radice quinta di 243 = 3^5;
  10:             x =(int)Math.Round(Math.Exp(Math.Log(a, Math.Exp(1))/n));
  11:         }
  12:     }

 

Nunc est bibendum...

Technorati Tag: ,