miércoles, 26 de noviembre de 2008

Curiosidades de los factoriales

EDITADO




Bueno, a continuación algunas propiedades de los factoriales.

- Para todo n >=2, factorial(n) es par.

Es lógico, todos estarán multiplicados por 2.

- Para n alto, factorial(n) acabará en bastantes ceros.

Por ejemplo: factorial(150).

tiene como multiplicandos: 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130, 150
o lo que es lo mismo 10, 2*10, 3*10, ...10 * 10, 15*10

Total que para 150 tendríamos 16 veces el diez, así que acabaría con 16 por lo menos 16 ceros. Luego supongo que habrá que sumarle las parejas 2*5, no sé si alguna combinación más producirá ceros, imagino que sí. ¿Alguno sabe alguna fórmula general para calcular el número de ceros de un factorial?

He calculado con Lisp el de 150 y da lo siguiente:

57133839564458545904789328652610540031895535786011264182548375833179829
12484539839312657448867531114537710787874685420416266625019868450446635
59491959220665749425920957357789293253572904449624724054167907221184454
37122269675520000000000000000000000000000000000000

Concretamente 37 ceros


Aquí pongo alguna tabla

Intervalo Ceros al final
0 - 4 0
5 - 9 1
10 - 14 2
15 - 19 3
20 - 24 4
25 - 29 6 (aquí se mantiene la longitud del intervalo pero aumenta en una unidad más, lógicamente)
...

Así observándolo parece que es por intervalos de 6 números, lo que pasa que no sé para números mayores como será, no creo siga así.

Bueno me ha entrado la curiosidad y me he hecho un programa en Lisp para ver como evoluciona esto.
Aquí os dejo la salida:


Factorial de 0 tiene 0 ceros
Factorial de 1 tiene 0 ceros
Factorial de 2 tiene 0 ceros
Factorial de 3 tiene 0 ceros
Factorial de 4 tiene 0 ceros
Factorial de 5 tiene 1 ceros
Factorial de 6 tiene 1 ceros
Factorial de 7 tiene 1 ceros
Factorial de 8 tiene 1 ceros
Factorial de 9 tiene 1 ceros
Factorial de 10 tiene 2 ceros
Factorial de 11 tiene 2 ceros
Factorial de 12 tiene 2 ceros
Factorial de 13 tiene 2 ceros
Factorial de 14 tiene 2 ceros
Factorial de 15 tiene 3 ceros
Factorial de 16 tiene 3 ceros
Factorial de 17 tiene 3 ceros
Factorial de 18 tiene 3 ceros
Factorial de 19 tiene 3 ceros
Factorial de 20 tiene 4 ceros
Factorial de 21 tiene 4 ceros
Factorial de 22 tiene 4 ceros
Factorial de 23 tiene 4 ceros
Factorial de 24 tiene 4 ceros
Factorial de 25 tiene 6 ceros
Factorial de 26 tiene 6 ceros
Factorial de 27 tiene 6 ceros
Factorial de 28 tiene 6 ceros
Factorial de 29 tiene 6 ceros
Factorial de 30 tiene 7 ceros
Factorial de 31 tiene 7 ceros
Factorial de 32 tiene 7 ceros
Factorial de 33 tiene 7 ceros
Factorial de 34 tiene 7 ceros
Factorial de 35 tiene 8 ceros
Factorial de 36 tiene 8 ceros
Factorial de 37 tiene 8 ceros
Factorial de 38 tiene 8 ceros
Factorial de 39 tiene 8 ceros
Factorial de 40 tiene 9 ceros
Factorial de 41 tiene 9 ceros
Factorial de 42 tiene 9 ceros
Factorial de 43 tiene 9 ceros
Factorial de 44 tiene 9 ceros
Factorial de 45 tiene 10 ceros
Factorial de 46 tiene 10 ceros
Factorial de 47 tiene 10 ceros
Factorial de 48 tiene 10 ceros
Factorial de 49 tiene 10 ceros
Factorial de 50 tiene 12 ceros
Factorial de 51 tiene 12 ceros
Factorial de 52 tiene 12 ceros
Factorial de 53 tiene 12 ceros
Factorial de 54 tiene 12 ceros
Factorial de 55 tiene 13 ceros
Factorial de 56 tiene 13 ceros
Factorial de 57 tiene 13 ceros
Factorial de 58 tiene 13 ceros
Factorial de 59 tiene 13 ceros
Factorial de 60 tiene 14 ceros
Factorial de 61 tiene 14 ceros
Factorial de 62 tiene 14 ceros
Factorial de 63 tiene 14 ceros
Factorial de 64 tiene 14 ceros
Factorial de 65 tiene 15 ceros
Factorial de 66 tiene 15 ceros
Factorial de 67 tiene 15 ceros
Factorial de 68 tiene 15 ceros
Factorial de 69 tiene 15 ceros
Factorial de 70 tiene 16 ceros
Factorial de 71 tiene 16 ceros
Factorial de 72 tiene 16 ceros
Factorial de 73 tiene 16 ceros
Factorial de 74 tiene 16 ceros
Factorial de 75 tiene 18 ceros
Factorial de 76 tiene 18 ceros
Factorial de 77 tiene 18 ceros
Factorial de 78 tiene 18 ceros
Factorial de 79 tiene 18 ceros
Factorial de 80 tiene 19 ceros
Factorial de 81 tiene 19 ceros
Factorial de 82 tiene 19 ceros
Factorial de 83 tiene 19 ceros
Factorial de 84 tiene 19 ceros
Factorial de 85 tiene 20 ceros
Factorial de 86 tiene 20 ceros
Factorial de 87 tiene 20 ceros
Factorial de 88 tiene 20 ceros
Factorial de 89 tiene 20 ceros
Factorial de 90 tiene 21 ceros
Factorial de 91 tiene 21 ceros
Factorial de 92 tiene 21 ceros
Factorial de 93 tiene 21 ceros
Factorial de 94 tiene 21 ceros
Factorial de 95 tiene 22 ceros
Factorial de 96 tiene 22 ceros
Factorial de 97 tiene 22 ceros
Factorial de 98 tiene 22 ceros
Factorial de 99 tiene 22 ceros
Factorial de 100 tiene 24 ceros
Factorial de 101 tiene 24 ceros
Factorial de 102 tiene 24 ceros
Factorial de 103 tiene 24 ceros
Factorial de 104 tiene 24 ceros
Factorial de 105 tiene 25 ceros
Factorial de 106 tiene 25 ceros
Factorial de 107 tiene 25 ceros
Factorial de 108 tiene 25 ceros
Factorial de 109 tiene 25 ceros
Factorial de 110 tiene 26 ceros
Factorial de 111 tiene 26 ceros
Factorial de 112 tiene 26 ceros
Factorial de 113 tiene 26 ceros
Factorial de 114 tiene 26 ceros
Factorial de 115 tiene 27 ceros
Factorial de 116 tiene 27 ceros
Factorial de 117 tiene 27 ceros
Factorial de 118 tiene 27 ceros
Factorial de 119 tiene 27 ceros
Factorial de 120 tiene 28 ceros
Factorial de 121 tiene 28 ceros
Factorial de 122 tiene 28 ceros
Factorial de 123 tiene 28 ceros
Factorial de 124 tiene 28 ceros
Factorial de 125 tiene 31 ceros
Factorial de 126 tiene 31 ceros
Factorial de 127 tiene 31 ceros
Factorial de 128 tiene 31 ceros
Factorial de 129 tiene 31 ceros
Factorial de 130 tiene 32 ceros
Factorial de 131 tiene 32 ceros
Factorial de 132 tiene 32 ceros
Factorial de 133 tiene 32 ceros
Factorial de 134 tiene 32 ceros
Factorial de 135 tiene 33 ceros
Factorial de 136 tiene 33 ceros
Factorial de 137 tiene 33 ceros
Factorial de 138 tiene 33 ceros
Factorial de 139 tiene 33 ceros
Factorial de 140 tiene 34 ceros
Factorial de 141 tiene 34 ceros
Factorial de 142 tiene 34 ceros
Factorial de 143 tiene 34 ceros
Factorial de 144 tiene 34 ceros
Factorial de 145 tiene 35 ceros
Factorial de 146 tiene 35 ceros
Factorial de 147 tiene 35 ceros
Factorial de 148 tiene 35 ceros
Factorial de 149 tiene 35 ceros
Factorial de 150 tiene 37 ceros
Factorial de 151 tiene 37 ceros
Factorial de 152 tiene 37 ceros
Factorial de 153 tiene 37 ceros
Factorial de 154 tiene 37 ceros
Factorial de 155 tiene 38 ceros
Factorial de 156 tiene 38 ceros
Factorial de 157 tiene 38 ceros
Factorial de 158 tiene 38 ceros
Factorial de 159 tiene 38 ceros
Factorial de 160 tiene 39 ceros
Factorial de 161 tiene 39 ceros
Factorial de 162 tiene 39 ceros
Factorial de 163 tiene 39 ceros
Factorial de 164 tiene 39 ceros
Factorial de 165 tiene 40 ceros
Factorial de 166 tiene 40 ceros
Factorial de 167 tiene 40 ceros
Factorial de 168 tiene 40 ceros
Factorial de 169 tiene 40 ceros
Factorial de 170 tiene 41 ceros
Factorial de 171 tiene 41 ceros
Factorial de 172 tiene 41 ceros
Factorial de 173 tiene 41 ceros
Factorial de 174 tiene 41 ceros
Factorial de 175 tiene 43 ceros
Factorial de 176 tiene 43 ceros
Factorial de 177 tiene 43 ceros
Factorial de 178 tiene 43 ceros
Factorial de 179 tiene 43 ceros
Factorial de 180 tiene 44 ceros
Factorial de 181 tiene 44 ceros
Factorial de 182 tiene 44 ceros
Factorial de 183 tiene 44 ceros
Factorial de 184 tiene 44 ceros
Factorial de 185 tiene 45 ceros
Factorial de 186 tiene 45 ceros
Factorial de 187 tiene 45 ceros
Factorial de 188 tiene 45 ceros
Factorial de 189 tiene 45 ceros
Factorial de 190 tiene 46 ceros
Factorial de 191 tiene 46 ceros
Factorial de 192 tiene 46 ceros
Factorial de 193 tiene 46 ceros
Factorial de 194 tiene 46 ceros
Factorial de 195 tiene 47 ceros
Factorial de 196 tiene 47 ceros
Factorial de 197 tiene 47 ceros
Factorial de 198 tiene 47 ceros
Factorial de 199 tiene 47 ceros



La pongo pequeñita para que la veais. Parece que la longitud de los intervalos es constante pero que el incremento no.
Si alguien sabe alguna fórmula general le agradecería el dato.

Por lo demás, aquí os dejo el código en Lisp, se puede optimizar bastante pero estoy bastante cansado y además los cálculos los hace bastante rápido.

(defun fact(x) (if (= x 0) 1 (* x (fact (- x 1)))))

(defun numceros (n)

(if (and (not (= n 0)) (= 0 (mod n 10)))
(+ 1 (numceros (/ n 10)))
0)
)

(defun calcular (limitesup)

(dotimes (n limitesup)
(format t "Factorial de ~D tiene ~D ceros~" n
(numceros (fact n)))
)
)

Ahora me voy a dormir que ya es tarde

PD: parece que el número de ceros cambia con los múltiplos de 25 o algo, no sé, ya lo miraré. Si descubrís algo ya lo diréis porfa.






EDITADO LO SIGUIENTE:




Con la información proporcionada por Javifields he hecho una gráfica de los ceros de los números, a ver qué forma tenía. Aquí os la dejo:







si hacemos zoom vemos lo siguiente:


Se ven los escalones de longitud uno y en los múltiplos de 5 un salto.
El código Matlab:
for i = 1:1000
v(i) = 0;
x(i) = i;
for j = 1:fix(log(i)/log(5))
v(i) = v(i) + fix(i/(5^j));
end
end
plot(x,v)
Perdón por no indentar el código pero es que aquí si pones espacios te los quita.

9 comentarios:

Javifields dijo...

Hola. No sé si te va a gustar esta respuesta... pero creo que no hay otra :-)

Sea n! = 2^n1 * 3^n2 * 5^n3 * 7^n4 * ...

la descomposición en factores primos de n! (donde x^n representa x elevado a n).

Entonces es claro que el nº de ceros seguidos a la derecha de n! es el mínimo entre n1 y n3 (hay un 0 por cada pareja de 2 y 5 en la descomposición en factores primos). Pero ese mínimo es siempre n3 (siempre hay más doses que cincos en la descomposición en factores primos de un factorial porque hay más múltiplos de dos que de 5 en la secuencia 2,3,4,5...,n).

Para calcular el valor de n3 hay que saber algo de teoría de números...

El resultado es (ver la demostración aquí):

n3 = n/5 + n/(5^2) + n/(5^3) + ... + n/(5^log{5}n)

(donde log{5}n es el logaritmo en base 5 de n y las divisiones se consideran por defecto).

Por ejemplo, en el caso de 149:

n3 = 149/5 + 149/25 + 149/125 = 39 + 7 + 1 = 47

Javifields dijo...

Perdón, en el ejemplo anterior me refería a 199 (y no a 149):

n3 = 199/5 + 199/25 + 199/125 = 39 + 7 + 1 = 47

Eidan dijo...

¡Muchas gracias! Me estuve comiendo la cabeza en busca de una demostración facilona pero ya veo que tiene algo de miga, además no encontré la demostración por ningún lado.
Claro, yo intenté tirar mirando los dieces que había pero había que mirar las parejas (2,5).
Muy interesante la fórmula que sale.
Por cierto, creo que te has colado en la fórmula, donde pones 149 creo que quieres decir 199 ¿no?

Eidan dijo...

jeje ok, ahora todo cuadra.

Anónimo dijo...

oye, disculpa, puedes explicarme bien la parte de "n/(5^log{5}n)" ??? porfa

Anónimo dijo...

pues yo teno algo que crteo que esConsiste en una formula muy compleja y siento que tiene algo de relacion es para calcual por medio de factoriales las combinaciones de algo
la formmula es la sig:

C(coeficiente n y sumindice x)=n!/x!(n-x)!

espero y se entienda pero pues no se como va esta relacon y netqa la necesito con urgencia dejo mi correo camella2.0@hotmail.com
por favor les pido y me ayuden
hasta luego

Anónimo dijo...

pues yo teno algo que crteo que esConsiste en una formula muy compleja y siento que tiene algo de relacion es para calcual por medio de factoriales las combinaciones de algo
la formmula es la sig:

C(coeficiente n y sumindice x)=n!/x!(n-x)!

espero y se entienda pero pues no se como va esta relacon y netqa la necesito con urgencia dejo mi correo camella2.0@hotmail.com
por favor les pido y me ayuden
hasta luego

Tonymichi dijo...

Hola anónimo,

después de echar un vistazo a tu fórmula muy compleja, he llegado a la conclusión de que lo que intentas expresar es un número combinatorio, o coeficiente binomial:

http://es.wikipedia.org/wiki/Coeficiente_binomial

No entiendo qué clase de ayuda pides exactamente. De todos modos existen foros o páginas como Yahoo respuestas en las que la gente pregunta cosas y se les responde.

Un saludo.

Anónimo dijo...

holas...
los ceros cambian en multiplos de 5. probe en varios casos por ejm para factorial de 166 se divide entre 5 hasta agotarlo, luego se suma todos los cocientes y resulta la cantidad de ceros del factorial del ejm.