Fattoriale – Funzioni

Vedi la discussione


Puoi usare la funzione math.factorial()


Definizione iterativa

\displaystyle n!=\left\{ \begin{array}{ll}1 & n=0,1\\ n(n-1)\,\dots\,1 & \text{altrimenti}\end{array} \right

Per n=5: 5!=5*4*3*2*1=120

Il fattoriale come funzione di n

def fatt(n):  
    prod = 1
    for i in range(2, n+1):
        prod *= i
    return prod

n = 5
print(n, fatt(n))  # 5 120
def fatt(n):     
    prod = 1
    i = 2
    while(i <= n):
        prod *= i
        i    += 1
    return prod

n = 5
print(n, fatt(n))  # 5 120

Definizione ricorsiva

\displaystyle n!=\left\{ \begin{array}{ll}1 & n=0,1\\ n(n-1)! & \text{altrimenti}\end{array} \right

oppure

\displaystyle f(n)=\left\{\begin{array}{ll}1 & n=0,1\\ n\cdot f(n-1) & \text{altrimenti}\end{array} \right

def fatt(n):  
    if(n <= 1): 
        return 1
    else:
        return n*fatt(n-1)

n = 5
print(n, fatt(n))  # 5 120

Con formula

import math

def fatt(n):
    return math.sqrt(2*math.pi*n) * (n/math.e)**n