Questi zeri!

Questi zero

Il fattoriale matematico si indica con il punto esclamativo, ed indica il prodotto di tutti i numeri da 1 fino ad un certo valore. Ad esempio 7! = 1x2x3x4x5x6x7 = 5040.

Avevamo già parlato del numero di cifre che 0 che appaiono alla fine dei numeri fattoriali, ma si può dire qualcosa di più, cioè con un semplice calcolo si può dire approssimativamente quanti saranno questi zeri finali nei fattoriali.

In pratica, se ti chiedo con quanti zeri terminerà il numero 10.000!, si può rispondere abbastanza velocemente con una buona approssimazione.

Come si fa?

14 commenti su “Questi zeri!”

  1. rispondendo a lume di naso, mi pare che per far comparire un nuovo “zero” a destra, occorra un “per 10 o per 20, per 30…”o”, un “per 5 associato ad un “per numero pari”. Di numeri pari ce c’è in abbondanza; per cui ogni volta che appare un fattore che termina con la cifra “5” la condizione è soddisfatta; lo stesso ogni volta che l’ultimo fattore è un multiplo di “10”. Non ho fatto prove, ma direi quindi che ogni aumento di 5, si aggiunge uno zero in coda. SE&O

  2. dopo la risposta “approssimata”, ho fatto un piccolo giro di prova.
    La crescita di due “zeri” ad ogni decina è confermata, ma con l’aggiunta di qualche zero qua e là. Tutta colpa dell’abbondanza di numeri pari, da accoppiare ai fattori che finiscono in “5”. Quando l’ultimo fattore è una potenza di cinque, i “5” in grado di accoppiarsi con un “2” per generare uno zero, sono più di uno. Per cui dopo 24! che ha quattro zeri, avremo 25! che farà un salto di due, mostrando una coda con sei “zeri”. Così anche 50! e 75!, faranno scattare avanti il contatore di due zeri in un colpo. E la cosa si ripeterà, con un salto di tre zeri, quando l’ultimo fattore sarà 5 alla terza. E così via

  3. Ciao, Enrico D.
    Ma… ad esempio, 100.000! con quanti zeri finisce? Dimmi una risposta che si può dare velocemente, senza troppi calcoli. La formula che ho in mente, in questo caso, fornisce la risposta sbagliata per una unità, ma è molto veloce.

    1. 100.000! non esiste. E’ un numero troppo grande, per cui non vale!!!
      volendolo scrivere, anche con una stampante che consuma poco inchiostro, forse non basterebbe tutto l’inchiostro prodotto dall’inizio dell’umanità. Forse nemmeno tutta la materia esistente nell’universo…
      A parte lo scherzo, non sono in grado di andare oltre; non ho le competenze né
      l’attitudine per creare una formula. Lascio volentieri ad altri l’incombenza.

  4. provo
    per x!
    uno zero ogni 5 + uno zero ogni 25 + uno ogni 125…
    (x/5)+(x/5^2)+(x/5^3)+…(x/5^n)
    fermando la serie prima che 5^n superi x
    Per 1000!, verrebbe
    200+40+8+1=249
    che è corretto

  5. Se chiamo F la funzione che prende n in ingresso e ci restituisce il numero di 0 finali di n!, ho provato a studiare come si comporta F(10^k), usando la formula che descrive enrico, che mi sembra l’unico modo ragionevole.

    F(n)=floor(n/5^1)+floor(n/5^2)+floor(n/5^3)…
    Dove floor è la funzione “parte intera”, finché gli addendi non sono minori di 1.

    Dopo una regolarità sospetta iniziale, ha iniziato a comportarsi in maniera strana, avete ipotesi?

    F(10^2)=24.
    F(10^3)=249
    F(10^4)=2499
    F(10^5)=24999
    F(10^6)=249998
    F(10^7)=2499999
    F(10^8)=24999999
    F(10^9)=249999998
    F(10^10)=2499999997

  6. A questo punto, dopo tutte queste premesse, manca solo la risposta. Ricorda che io chiedo soltanto una risposta con una buona approssimazione.

  7. la risposta “un quarto” è una buona approssimazione.
    Se la domanda è “quanti sono gli zeri in fondo a destra”.
    Che è cosa ben diversa dal calcolo, anche approssimativo, del valore del fattoriale. Uno o due zeri in più, significano moltiplicare il numero per 10 o cento !!!

  8. Esatto, Enrico.
    Io chiedevo un risultato da trovare con un metodo spiccio, e che avesse una buona approssimazione. Un miliardo fattoriale termina con circa 1.000.000.000/4 = 250.000.000 zeri. Dando questa risposta sbaglio di 3, in quanto il risultato giusto è 249.999.997. Come vedi, è una buona approssimazione, ottenuta con un’unica operazione matematica.
    A questo punto si potrebbe anche dare la dimostrazione che dividendo per 4 il numero dato si ottiene un valore sempre di poco inferiore alla soluzione reale.
    Ciao.

    1. Achtung!
      Potrebbe contenere matematica non elementare, ma è Giorgio a richiederla, non è colpa mia, ed ho provato a mantenerla più comprensibile possibile!

      F(n)=floor(n/5^1)+floor(n/5^2)+floor(n/5^3)… =
      =(n/5^1+n/5^2+n/5^3…)+({n/5^1}+{n/5^2}+floor{n/5^3}…)

      dove {} è la parte decimale del suo contenuto.

      =n((1/(1-1/5) -1) + ({n/5^1}+{n/5^2}+floor{n/5^3}…)=
      =n/4 – ({n/5^1}+{n/5^2}+floor{n/5^3}…)

      dobbiamo solo vedere che il secondo addendo sia trascurabile rispetto ad n/4 per dire che si tratti di una buona approssimazione (che sia un o(n)),

      ma essendo n/5^k definitivamente minore di 1 per qualsiasi n, a partire da una quantità logaritmica di addendi allora, approssimando per eccesso tutti gli addendi prima di k ad 1, e per eccesso tutti i successivi a k ad 1, 1/5, 1/5^2, etc, che è una serie strettamente maggiore di {1/5^k} quando 1/5^k è minore di 1:
      {n/5^1}+{n/5^2}+floor{n/5^3}… f(n) > n/4 – log_5(n)-5/4
      quindi f(n)=n/4+o(n)

      Questo ci da’ una misura onesta di quanto sia vicino ad n/4 il valore cercato.

  9. Errata sui segni tra le due serie in cui divido F(n), ma il seguito li ha corretti…
    shame on me

    F(n)=floor(n/5^1) – floor(n/5^2)+floor(n/5^3)… =
    =(n/5^1+n/5^2+n/5^3…) – ({n/5^1}+{n/5^2}+floor{n/5^3}…)

    dove {} è la parte decimale del suo contenuto.

    =n((1/(1-1/5) -1) – ({n/5^1}+{n/5^2}+floor{n/5^3}…)=
    =n/4 – ({n/5^1}+{n/5^2}+floor{n/5^3}…)

    1. Ehr, cancella i miei ultimi post, le parentesi graffe si sono mangiate dei pezzi di conti/testo, probabilmente non avrei dovuto usarle…
      Lo riscrivo con calma usando una notazione diversa, e senza fare danni ^^

      la conclusione è carina, n/4>f(n)>n/4-log_5(n)-5/4

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *