[¯|¯] Calcolo del fattoriale inverso con Matlab e con Mathematica

Settembre 1st, 2014 | by extrabyte |

Su Elettronica Open Source è stato pubblicato un articolo molto interessante su un esperimento di programmazione. Nello specifico ci si è posti il problema di scrivere un programma con Matlab per calcolare il fattoriale inverso.

A questo punto è necessario richiamare il concetto di fattoriale.



Assegnato n\in\mathbb{N}\diagdown\left\{  0\right\}, il fattorialedi n è il prodotto n\left(  n-1\right)  \left(  n-2\right)  ...\cdot2\cdot1 e si indica con n!. Si tratta, dunque, di una funzione (o applicazione)

f:\mathbb{N}\rightarrow\mathbb{N}


Si pone per definizione 0!=1, cosicchè:

n!=\left\{\begin{array}[c]{l}n\left(  n-1\right)  \left(  n-2\right)  ...\cdot2\cdot1\text{, \ se }n>0\\1,\,\,\text{se }n=0\end{array}\right.<br />


Notiamo che l'applicazione f è iniettiva:

n\not =n^{\prime}\Longrightarrow f\left(  n\right)  \not =f\left(  n^{\prime}\right)


ma non suriettiva:

f\left(  \mathbb{N}\right)  \subset\mathbb{N}


L'iniettività garantisce l'invertibilità di f:

m=f\left(  n\right)  \Longrightarrow n=f^{-1}\left(  m\right)  ,


dove f^{-1} è l'inversa di f. Chiamiamo f^{-1} fattoriale inverso. Tuttavia, dalla non suriettività segue che:

\exists\nu\in\mathbb{N}\mid\nexists n\in\mathbb{N}\mid\nu=n!

Ad esempio, basti pensare ai numeri dispari, ad eccezione di 1. Assegnato un intero m
ci proponiamo di scrivere un algoritmo in grado di determinare n tale che
n!=m. Ovviamente, se ciò è possibile (per quanto visto sopra). Il fattoriale è un classico esempio di successione ricosivamente definita, per cui un calcolatore ben si presta ad eseguire calcoli di questo tipo. A tale scopo utilizziamo il sistema di computer algebra Mathematica. In tale software il fattoriale è una funzione built-in. Riguardo alla possibilità di invertire f, osserviamo che dalla definizione di fattoriale si ricava:

n=\frac{n!}{\left(  n-1\right)  !}%


Se m è l'intero naturale di cui vogliamo conoscere l'antifattoriale (i.e. m=n! ):

n=\frac{m}{\left(  n-1\right)  }%

Ecco il link dell'articolo

http://it.emcelettronica.com/linversione-delloperazione-di-fattoriale-ovvero-fattoriale-inverso/

in cui è riportato il codice Mathematica per il calcolo del fattoriale inverso.

Ricerca personalizzata

No TweetBacks yet. (Be the first to Tweet this post)

Tags: , , ,

Articoli correlati

Commenta l'esercizio