Título: Factorial de un Número : duda Publicado por: snoopty en 8 Enero 2022, 18:28 pm Hola ! Quisiera saber si es correcto que el sgte. código ( en el caso de calcular el factorial de 5 )
tiene 4 ( y no 5 ) Iteraciones ; pues pienso que " factorial = 1 x 1 " no sería la 1er Iteración, ya que es un cálculo donde se están multiplicando dos Variables inicializadas en 1 ; pienso que aún no comenzó " i " a incrementarse, por eso no sería una Iteración. Sé que es algo contradictorio lo que digo, pues en " factorial = factorial x 1 " , el 2do factorial necesita munirse de ese " 1 con que fue inicializado " en la 1er Iteración para que comience a funcionar ++i; sino, ¿ de dónde obtiene el primer uno el 2do factorial de la fórmula para ejecutar ( lo que yo considero que es ) la 1er Iteración ?? Código
Gracias x leer el mensaje. Título: Re: Factorial de un Número : duda Publicado por: Serapis en 9 Enero 2022, 00:08 am Has iniciado factorial a 1, si fuera 0, cualquier multiplicación posterior daría 0.
Si i=1, la primera iteración (te guste o no) es esa, i=1. Otra cosa es que resulte superfluo multiplicar factorial por 1.Pues 1x1 = 1. Ergo, puedes inicializar el bucle con i=2 (siempre que 'numero' fuere mayor que 1). Código: Si (numero > 0) factorial =1 si (numero > 1) ... calcular empezando con i=2 fin si fin si devolver factorial ...de hecho tu código fallará si se introduce para numero un valor menor que 1. Título: Re: Factorial de un Número : duda Publicado por: snoopty en 10 Enero 2022, 12:35 pm Entiendo perfectamente lo que decís; pero .... supongamos que un Colectivo es " Trasladado flamente directamente desde la Fábrica - donde se le provee de nafta, aceite, etc. y de un Conductor - mediante un Remolque hasta la Estación ' 1 ' ";
y a ese ' Trasladado ' lo denomino ' Inicializado en UNO ' : Mientras esté en ' 1 ' está quieto; recién cuando arranca ( vale decir " comienza a iterar ? " ) la iteración comenzará : y pasará por las Estaciones 2, 3, 4 y 5; y lo hará en 4 tramos ( podría yo decir 4 iteraciones ? ) = 1era Desde 1 hasta 2, 2da Desde 2 hasta 3, 3era desde 3 hasta 4 ..... y 4ta desde 4 hasta 5. Porqué esto que argumeno no sería válido ? Saludos ! Título: Re: Factorial de un Número : duda Publicado por: MAFUS en 10 Enero 2022, 16:37 pm Siendo sinónimos ejecución de un bucle e iteración de un bucle está claro que no es lo mismo que repetición.
Ejemplo trivial. Código
Título: Re: Factorial de un Número : duda Publicado por: snoopty en 16 Enero 2022, 01:22 am Gracias x responder; pero en dónde " haría agua " mi ejemplo ?
Título: Re: Factorial de un Número : duda Publicado por: K-YreX en 16 Enero 2022, 13:32 pm Este tema tenía que llamarse: "Hacer complicado lo simple" :xD
Empezamos por decir que una iteración es cada una de las repeticiones de un proceso. Partiendo de eso, cuántas iteraciones tiene calcular el factorial de 5 o cualquier otro proceso? Pues las que tu algoritmo defina. Un mismo problema se puede solucionar con diferentes algoritmos que varíen el número de iteraciones para resolverlo. Creo que se explica más fácil con código: Código
Y ahí tenemos cómo calcular el número de iteraciones de un bucle de forma general tanto cuando el comparador es '<' o '<='. Ahora vamos al código original: Citar Código
Es decir: numero-iteraciones si numero >= 0 o 0 en caso contrario -> numero = 5 -> El programa realiza 5 iteraciones, no hay más. Que la primera iteración no tiene sentido porque el 1 es el elemento neutro de la multiplicación y entonces multiplicar por 1 es como no hacer nada? Efectivamente, pero ese programa realiza 5 iteraciones. Si consideras que la primera no es necesaria y realizas la siguiente modificación: Código Ahora, cuántas iteraciones realiza este bucle? MAX(0, (numero-2+1)) = MAX(0, (numero-1)) -> numero = 5 -> MAX(0, (5-1)) = MAX(0, 4) = 4 iteraciones Todo depende de cómo se implemente el algoritmo no de "yo considero que esta no cuenta". Si consideras que algo no cuenta pero tu programa lo está haciendo, entonces cuenta. Si no quieres que cuente, haz que tu programa no lo haga y entonces no contará. |