Java - Java Recursividad en serie

 
Vista:
Imágen de perfil de Guillermo
Val: 9
Ha aumentado su posición en 5 puestos en Java (en relación al último mes)
Gráfica de Java

Java Recursividad en serie

Publicado por Guillermo (1 intervención) el 15/10/2020 02:36:42
Hola a todos alguien me podría explicar de que va lo siguiente:

Utilizando la recursividad directa, genera las solución a la siguiente serie:
S = 1 + 1/1! + 2/2! + 3/3! …… + n/n!

No logro identificar el propósito de la serie.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
1
Responder
Imágen de perfil de Rodrigo
Val: 2.041
Plata
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Java Recursividad en serie

Publicado por Rodrigo (623 intervenciones) el 15/10/2020 06:19:00
A que te refieres con "el proposito de la serie" ?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Java Recursividad en serie

Publicado por Toni Monzon (1 intervención) el 15/10/2020 14:33:32
¡Excelente reto!
Te explico... la serie consta de sacar la sumatoria de:
n cantidad de números ingresados, ejemplo,
si ingresas un "2" la serie seria: S = 1 +1/1! + 2/2!
Como siempre va a iniciar con 1 supongo que habrá que inicialisar un valor en 1.
Lo siguiente seria crear las operaciones para continuar en ciclo (no estoy seguro cuales son).
Nota.. n! significa factorial, es muy común hacer cosas con factoriales cuando se ven temas de recursividad.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Guillermo
Val: 9
Ha aumentado su posición en 5 puestos en Java (en relación al último mes)
Gráfica de Java

Java Recursividad en serie

Publicado por Guillermo (1 intervención) el 16/10/2020 01:38:46
Hola gracias lo explicas muy bien, tienes alguna idea de como se puede hacer el proceso de la suma, he estado intentado pero no logro resolver esa parte solo lo del factorial. Se tendrá que llamar nuevamente el proceso???
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Java Recursividad en serie

Publicado por Costero (148 intervenciones) el 16/10/2020 04:53:13
No estoy seguro, pero ahi va:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public class FactorialDirect {
 
    public static void main(String [] args) {
        FactorialDirect factorialDirect = new FactorialDirect();
        int n = 5;
        double result = factorialDirect.directFact(n);
        System.out.println("Resultado: " + result);
    }
 
    private double directFact(int n) {
        if(n == 1) {
            return 1 + 1/factorial(1);
        } else {
            return directFact(n - 1) + (double) n / factorial(n);
        }
    }
 
    private int factorial(int n){
        if (n == 0)
            return 1;
        else
            return(n * factorial(n-1));
    }
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Rodrigo
Val: 2.041
Plata
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Java Recursividad en serie

Publicado por Rodrigo (623 intervenciones) el 16/10/2020 07:26:38
Si no fuera por el 1 inicial de esa suma, esta convergeria al numero e, pero tal como esta, converge a (1+ e). O eso creo.

Una cosa que se puede aprovechar es que un termino de la suma se puede obtener del anterior, por lo que no es necesario calcular el factorial en cada iteracion. Basta dividir por el numero de la iteracion en que vas.

Si consideras esto, la serie convergera mas rapidamente, y tal vez con mas exactitud que calcular los factoriales cada vez, puesto que los factoriales son cada vez mas grandes, en cambio la relacion entre un termino y otro solo difiere en un factor.

Estos valores podrian obtenerse para distintos valores de n:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
0: 1.0
1: 2.0
2: 3.0
3: 3.5
4: 3.6666666666666665
5: 3.708333333333333
6: 3.716666666666667
7: 3.7180555555555554
8: 3.7182539682539684
9: 3.7182787698412696
10: 3.7182815255731922
11: 3.7182818011463845
12: 3.718281826198493
13: 3.7182818282861687
14: 3.718281828446759
15: 3.7182818284582297
16: 3.7182818284589945
17: 3.718281828459042
18: 3.718281828459045
19: 3.718281828459045
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar