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