Autor Tema: [RETO] calcular factorial  (Leído 21370 veces)

Desconectado Siquillote

  • PHPero Master
  • ******
  • Mensajes: 4.229
  • Karma: 179
  • Sexo: Masculino
    • Ver Perfil
Re:[RETO] calcular factorial
« Respuesta #15 en: 25 de Agosto de 2011, 22:26:48 pm »

esta solución tarda lo mismo que la anterior, puedes optimizar este mismo código para que sea mucho más eficiente

¿Es esta la solución al reto?

#Fdo. Physlet

Comunidad PHPeros

Re:[RETO] calcular factorial
« Respuesta #15 en: 25 de Agosto de 2011, 22:26:48 pm »

Desconectado good

  • PHPerit@
  • *
  • Mensajes: 49
  • Karma: 0
  • Nuev@ PHPer@
    • Ver Perfil
Re:[RETO] calcular factorial
« Respuesta #16 en: 25 de Agosto de 2011, 22:28:22 pm »
porcierto, no hay que limitarse a lo que haya dentro de la función, podeis usar estructuras

Desconectado good

  • PHPerit@
  • *
  • Mensajes: 49
  • Karma: 0
  • Nuev@ PHPer@
    • Ver Perfil
Re:[RETO] calcular factorial
« Respuesta #17 en: 25 de Agosto de 2011, 22:29:03 pm »
¿Es esta la solución al reto?

no, no es la solución más eficiente.
la idea si que es hacer una función recursiva, pero que sea eficiente

Desconectado good

  • PHPerit@
  • *
  • Mensajes: 49
  • Karma: 0
  • Nuev@ PHPer@
    • Ver Perfil
Re:[RETO] calcular factorial
« Respuesta #18 en: 25 de Agosto de 2011, 22:30:03 pm »
revisad el cambio del enunciado, los números para calcular su factorial ahora están entre 1 y 1000

Desconectado Siquillote

  • PHPero Master
  • ******
  • Mensajes: 4.229
  • Karma: 179
  • Sexo: Masculino
    • Ver Perfil
Re:[RETO] calcular factorial
« Respuesta #19 en: 25 de Agosto de 2011, 22:34:48 pm »

revisad el cambio del enunciado, los números para calcular su factorial ahora están entre 1 y 1000

Hola Good,

Yo estoy por dejar el reto, aparte de que hace tiempo que no programo y tengo la practica atrofiada, no se que estás buscando. El código de Physlet debería ser lo bastante eficaz tal y como lo estás buscando así que a mi no se me ocurre nada.

Un saludo,
Siquillote.

#Fdo. Physlet

Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:[RETO] calcular factorial
« Respuesta #20 en: 25 de Agosto de 2011, 22:35:27 pm »
function factorial($n){
	
return 
$n==1?1:$n*factorial($n-1);
}

Esto ya no se llama "optimización", se llama ahorro de espacio.

Desconectado good

  • PHPerit@
  • *
  • Mensajes: 49
  • Karma: 0
  • Nuev@ PHPer@
    • Ver Perfil
Re:[RETO] calcular factorial
« Respuesta #21 en: 25 de Agosto de 2011, 22:36:27 pm »
function factorial($n){
	
return 
$n==1?1:$n*factorial($n-1);
}

Esto ya no se llama "optimización", se llama ahorro de espacio.

eso no importa, lo que importa es la velocidad, no el número de lineas

Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:[RETO] calcular factorial
« Respuesta #22 en: 25 de Agosto de 2011, 22:39:04 pm »
eso no importa, lo que importa es la velocidad, no el número de lineas
Quiero conocer el método más "eficaz" del que hablas.
Y estoy usando la misma cantidad de líneas, el único cambio que hice fue acortar el nombre de la variable y quitar los espacios, de alguna u otra forma eso ocupa bytes, y hace que cargue más lento el archivo. Aunque obvio, con esta dimensión de archivo las diferencias son invisibles.

Desconectado good

  • PHPerit@
  • *
  • Mensajes: 49
  • Karma: 0
  • Nuev@ PHPer@
    • Ver Perfil
Re:[RETO] calcular factorial
« Respuesta #23 en: 25 de Agosto de 2011, 22:40:16 pm »
Quiero conocer el método más "eficaz" del que hablas.
Y estoy usando la misma cantidad de líneas, el único cambio que hice fue acortar el nombre de la variable y quitar los espacios, de alguna u otra forma eso ocupa bytes, y hace que cargue más lento el archivo. Aunque obvio, con esta dimensión de archivo las diferencias son invisibles.
pero pensadlo xD, porcierto, he cambiado el enunciado otra vez, la función estará hecha para leer valores del 1 al 15, porque php no puede calcular valores super largos directamente

Desconectado good

  • PHPerit@
  • *
  • Mensajes: 49
  • Karma: 0
  • Nuev@ PHPer@
    • Ver Perfil
Re:[RETO] calcular factorial
« Respuesta #24 en: 25 de Agosto de 2011, 22:42:36 pm »
teneis que usar estructuras

Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:[RETO] calcular factorial
« Respuesta #25 en: 25 de Agosto de 2011, 22:49:38 pm »
¿A qué tipo de estructuras te refieres?


function factorial($n){
	
return 
$n 15 || $n false : ($n==$n*factorial($n-1));
}

$fact factorial(5);
echo 
$fact $fact : 'Error';

Desconectado good

  • PHPerit@
  • *
  • Mensajes: 49
  • Karma: 0
  • Nuev@ PHPer@
    • Ver Perfil
Re:[RETO] calcular factorial
« Respuesta #26 en: 25 de Agosto de 2011, 22:50:53 pm »
¿A qué tipo de estructuras te refieres?


function factorial($n){
	
return 
$n 15 || $n false : ($n==$n*factorial($n-1));
}

$fact factorial(5);
echo 
$fact $fact : 'Error';


no, esa sigue siendo una de las soluciones lentas, he limitado el número por el hecho de que php no puede calcular factoriales enormes xD

porcierto, el script asume que es del 1 al 15, no hace falta que pongas eso de error, lo único que interesa es el Procedimiento

Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:[RETO] calcular factorial
« Respuesta #27 en: 25 de Agosto de 2011, 22:52:25 pm »
no, esa sigue siendo una de las soluciones lentas, he limitado el número por el hecho de que php no puede calcular factoriales enormes xD

porcierto, el script asume que es del 1 al 15, no hace falta que pongas eso de error, lo único que interesa es el Procedimiento
No, asume que era de 0 a 15. Editaste el que corregí. Ahora sí asume de 1 a 15.

Y pues, ando esperando.

Desconectado good

  • PHPerit@
  • *
  • Mensajes: 49
  • Karma: 0
  • Nuev@ PHPer@
    • Ver Perfil
Re:[RETO] calcular factorial
« Respuesta #28 en: 25 de Agosto de 2011, 22:53:42 pm »
No, asume que era de 0 a 15. Editaste el que corregí. Ahora sí asume de 1 a 15.

Y pues, ando esperando.
igualmente, el factorial de 0 es 1, bueno ahora cambio el enunciado en cuento a eso.

no, sigue siendo una solución poco eficiente

Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:[RETO] calcular factorial
« Respuesta #29 en: 25 de Agosto de 2011, 22:55:11 pm »
Vale, pero sigo esperando la solución eficiente.