Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - good

Páginas: 1 [2] 3 4
16
Los Retos PHPeros / Re:[RETO] calcular factorial
« en: 26 de Agosto de 2011, 01:15:53 am »
pongo un límite porque es un PROBLEMA. Prueba a calcular 1000! a ver que pasa

17
Los Retos PHPeros / Re:[RETO] calcular factorial
« en: 26 de Agosto de 2011, 01:12:38 am »
Tu argumento no es válido compañero. Creo que eso era lo que discutías con Siq anteriormente.
Es totalmente INCORRECTO llamar más de 1 vez a una misma función, con los mismos parámetros y que dé el mismo resultado.

Y vuelvo y digo, tu código no es extensible.

si supieras leer el código lo entenderías

la diferencia que hay es que de la manera dinámica solo calculas UNA VEZ los factoriales, en cambio, Tú los calculas continuamente, si calculas por ejemplo el factorial de 15, y después el de 14, lo estás haciendo de una manera poco eficiente.

Cuando, de la manera dinámica calculas el de 15, entonces habrá guardado ya TODOS los factoriales en una tabla y no será necesario VOLVERLOS A CALCULAR como hace tu solución.

18
Los Retos PHPeros / Re:[RETO] calcular factorial
« en: 26 de Agosto de 2011, 00:43:23 am »
Nada más que agregar, además de que no es un código extensible/portable/reutilizable.

-- Physlet --
0.0023460388183594 segundos
0.0024032592773438 segundos
0.0024604797363281 segundos
0.0023889541625977 segundos
0.0023889541625977 segundos

-- good --
0.0033044815063477 segundos
0.0031757354736328 segundos
0.0034189224243164 segundos
0.0033044815063477 segundos
0.0032901763916016 segundos

a ver, si solo vas a llamar a la función una vez, espérate esto, es algo Obvio viendo los códigos. Pero si haces por ejemplo un millón de llamadas, el tiempo debería cambiar, ya que tu programa realiza el cálculo un millón de veces y el mío solo una

19
Los Retos PHPeros / [reto] números primos
« en: 26 de Agosto de 2011, 00:11:22 am »
el problema es sencillo, una función booleana que devuelva TRUE o FALSE en función de si el número pasado como parámetro sea primo o no

hay que aplicar un algoritmo de la Criba de Eratóstenes.

20
C / C++ / backtracking
« en: 26 de Agosto de 2011, 00:03:41 am »
la idea del backtracking es "llegar hasta el fondo" y si no es correcto, retroceder.
Un ejemplo de aplicación es la solución de un laberinto.

pero voy a poner algo más sencillo, un programa que genera todas las combinaciones de 0 y 1 de longitud n

#include <iostream>
#include <vector>
using namespace std;
 
typedef vector<bool> VB;
 
void combinaciones (VB& v, int count) {
     if (count == int(v.size())) {
          // imprimir el vector
          for (int i = 0; i < int(v.size()); ++i) cout << v;
          cout << endl;
          return;
     }
     v[count] = true;
     combinaciones(v, count+1);
 
     v[count] = false;
     combinaciones(v, count+1);
}
 
int main () {
     int n;
     cin>>n;
     VB v(n);
 
     combinaciones(v, 0);
}

21
Los Retos PHPeros / Re:[RETO] calcular factorial
« en: 25 de Agosto de 2011, 23:46:44 pm »
Yo preferiría que me enviaras la solución, porque no se me ocurre otra manera de hacerlo que no hayan dicho ya.

ya está, enviado

22
Los Retos PHPeros / Re:[RETO] calcular factorial
« en: 25 de Agosto de 2011, 23:26:12 pm »
Quien se anime puede seguir pensando cómo hacerlo

23
Los Retos PHPeros / Re:[RETO] calcular factorial
« en: 25 de Agosto de 2011, 22:57:29 pm »
Vale, pero sigo esperando la solución eficiente.

como quieras, pero te la mando por mensaje privado para que el tema quede abierto

24
Los Retos PHPeros / Re:[RETO] calcular factorial
« 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

25
Los Retos PHPeros / Re:[RETO] calcular factorial
« 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 : &#39;Error&#39;;


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

26
Los Retos PHPeros / Re:[RETO] calcular factorial
« en: 25 de Agosto de 2011, 22:42:36 pm »
teneis que usar estructuras

27
Los Retos PHPeros / Re:[RETO] calcular factorial
« 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

28
Los Retos PHPeros / Re:[RETO] calcular factorial
« 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

29
Los Retos PHPeros / Re:[RETO] calcular factorial
« 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

30
Los Retos PHPeros / Re:[RETO] calcular factorial
« 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

Páginas: 1 [2] 3 4