sobre la funcion factorial en el video fing......

sobre la funcion factorial en el video fing......

de Alberto Daniel Sanchez Latronico -
Número de respuestas: 7

fact N -> N

fact(0) = 1

fact(S n) = (S n ) * fact(n )

-----

cuando se invoca con 3   n = 3  entonces (S n ) seria siguiente de 3   -> 4 * fac(3).

??? esto seria asi ? porque en clase video se toma (S n ) = 3 y no 4 .

f

En respuesta a Alberto Daniel Sanchez Latronico

Re: sobre la funcion factorial en el video fing......

de Carlos Luna -

Hola

Si se invoca fact con 3, sería 3 = (S 2). Luego, fact 3 = 3 * fact 2.

Saludos 

En respuesta a Carlos Luna

Re: sobre la funcion factorial en el video fing......

de Alberto Daniel Sanchez Latronico -
Hola Carlos,
(S n ) ? no es siguiente de n ?
En respuesta a Alberto Daniel Sanchez Latronico

Re: sobre la funcion factorial en el video fing......

de Carlos Luna -

Hola.

Si, (S n) es el siguiente de n (n+1).

Saludos 

En respuesta a Carlos Luna

Re: sobre la funcion factorial en el video fing......

de Alberto Daniel Sanchez Latronico -
Si Carlos , si es asi
entonces como puede ser (S 3) = 2 ?
la codificacion en C++ se entiende porque es n * fac(n-1) 3 * fac(2)
pero en el lenguaje estructural no me queda claro como siguiente queda como precedente y no como sucedente.
En respuesta a Alberto Daniel Sanchez Latronico

Re: sobre la funcion factorial en el video fing......

de Alberto Daniel Sanchez Latronico -
Tal vez pordria ser (P 3) = 2 porque seria precedente.
En respuesta a Alberto Daniel Sanchez Latronico

Re: sobre la funcion factorial en el video fing......

de Carlos Luna -
Recapitulando...

Vos pusiste:

fact N -> N

fact(0) = 1

fact(S n) = (S n ) * fact(n )

Acá se está usando pattern matching. Esto es: si es invoca a fact con x, digamos, hay dos casos: x==0 ó x ==(S n).

Tu pregunta fue que pasa cuando se invoca con 3 (fact(3)). Mi respuesta fue:

Si se invoca fact con 3, sería 3 = (S 2). Luego, fact 3 = 3 * fact 2.

Esto es, fact con x igual a 3 es: 3 * fact(2). Recoradar que en el matching, x==(S n) y en este caso n==2 ya que 3==(S 2).

No obstante, lo importante es que lo entiendas/n en C++, más allá de esta notación al estilo ecuacional. Cuando se invoca a fact con 0 el resultado es 1, y cuando se la invoca con un número mayor que 0 es el producto del número por el factorial del anterior. En la notación de arriba: fact(S n) = (S n ) * fact(n). En C++ fact(x) es x*fact(x-1), si x>0. Si te fijás, es lo mismo (tomando a x como (S n)).

Saludos, Carlos
En respuesta a Carlos Luna

Re: sobre la funcion factorial en el video fing......

de Alberto Daniel Sanchez Latronico -
Gracias Carlos
por  tu respuesta.

Me resulta rara esta forma "ecuacional " humm ... no es muy visiual  .
Lo voy a seguir analizando .
para mi seria mas razonable 
4 = (S 3 )
ya que n = 3 
y no  tomar  3 = (S 2)   
digo si la xpresion es   x = (S x ) esto seria  3  = (S 3) si yo reemplazo a las x por 3 lo que me queda una contracicion
ya que 3 es distinto de 4.
 

saludos Daniel.