Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: mort en 17 Febrero 2015, 01:58 am



Título: sacar el valor de la constante matemática "e".
Publicado por: mort en 17 Febrero 2015, 01:58 am
Escriba un programa que estime el valor de la constante matemática e, mediante el uso de la fórmula:

 e = 1 + 1/1! + 1/2! + 1/3! + ...

Necesito que me corrijan si entendí bien, bueno, para empezar no recuerdo haber visto lo de la constante "e" en la preparatoria o al menos creo que la vi un poco en temas de derivadas, pero en fin, nunca la estudie muy a fondo, así que cuando lei la definición en la wikipedia me sentí deslumbrado por la cantidad de conceptos que no entiendo, y por lo tanto me di cuenta de mi falta de conocimiento teórico  en matemáticas, bueno según a lo que yo entiendo tengo que sacar el valor de "e" que es aproximadamente : 2,7182818284590452..., mediante la formula que va en ascenso, es decir después de 1/3! sigue el 1/4! y así sucesivamente hasta que el resultado de un numero aproximado a e?.


Título: Re: sacar el valor de la constante matemática "e".
Publicado por: Orubatosu en 17 Febrero 2015, 13:17 pm
Exactamente, aproximado, pero nunca exacto.

El número "e" es irracional.

Es decir: tiene un numero infinito de decimales. Generalmente con unos pocos es mas que suficiente para cualquier aplicación, pongamos 8 decimales por ejemplo deberían de ser suficientes.

No es un caso raro, hay muchos números irracionales que se usan habitualmente en matemática, como Pi o la raíz de 2


Título: Re: sacar el valor de la constante matemática "e".
Publicado por: engel lex en 17 Febrero 2015, 13:59 pm
para hacerlo no es tan complicado, muestra algo de progreso si quieres recibir algo de ayuda real...


si quieres hacerlo en alta precisión (miles o millones de decimales) aquí un tema con un poco de eso

Calculo de pi en alta precisión (aporte)  (https://foro.elhacker.net/programacion_cc/calculo_de_pi_en_alta_precision_aporte-t412338.0.html;msg1934259#msg1934259)


Título: Re: sacar el valor de la constante matemática "e".
Publicado por: Gh057 en 18 Febrero 2015, 12:11 pm
Hola mort, lo solicitado se refiere a las series extendidas de Taylor. Es una aproximación mediante la suma de sucesivos términos -que se obtienen de las derivadas sucesivas de f en a- siendo necesario que la funcion f (o un intervalo de ella) sea continua, o sea  presente límites izquierdos y derechos iguales para todos a en dicho intervalo. Para acercarse más al valor correcto, se debe agregar el resto, como un término más.

el número  e presenta la particularidad que todas su derivadas valen lo mismo. :)

Te sugiero que leas sobre ello, igualmente teniendo la FT para e solo es cuestión de codearlo... y ya engel lex hizo un gran aporte sobre Pi que puedes implementarlo para tu ejercicio. O bien hacer una versión simple sin gmp, pero recuerda el límite de las variables.
Saludos


Título: Re: sacar el valor de la constante matemática "e".
Publicado por: okik en 18 Febrero 2015, 14:52 pm
El número 'e' es el límite de la sucesión:

an= (1+1/n)n


(http://upload.wikimedia.org/math/b/3/a/b3a27b55340c924723746011ca7f33b1.png)

luego es:

e= lim (1+1/n)n  -> cuando n tiende a infinito

De modo que cuanto mayor sea el valor de N más exacto será el valor de  'e'. Por ejemplo:

(1 + 1/100)100= 2.7048138294031855135...
(1 + 1/1000)1000= 2.7169239326424202463...
(1 + 1/10000)10000= 2.7181459268252250988...
(1 + 1/100000)100000=2.7182682371744897556...
(1 + 1/1000000)1000000=2.7182804693193768982...
(1 + 1/10000000)10000000=2.7182816925449640074...
...


Solamente se puede tener el número aproximado pues es un número irracional.

Si usas programas de cálculo, es posible que si da un número muy elevado a N te de como resultado 1 y no 2,71....

También sirve:
(http://upload.wikimedia.org/math/c/c/d/ccd9aa9dff01f5631d00c01d6a263111.png)


Aquí te dejo una manera de hacerlo con VB6, tendrás que pasarlo a C
Código
  1. Private Sub Command1_Click()
  2. Dim e As Variant
  3. Dim i As Variant
  4. For i = 0 To (100)
  5. e = e + (1 / Factorial(i))
  6. Next i
  7. Print e
  8. End Sub
  9.  
  10. Private Sub Command2_Click()
  11. Dim e As Variant
  12. e = (1 + 1 / 10000000000#) ^ 10000000000#
  13. Print e
  14. End Sub
  15.  
  16. Public Function Factorial(NumFactorizar As Variant) As Variant
  17. Dim X As Variant
  18. X = NumFactorizar
  19. For i = 1 To NumFactorizar - 1
  20. X = X * (NumFactorizar - i)
  21. Next i
  22. If X = 0 Then X = 1
  23. Factorial = X
  24. End Function
  25.  

Seguramente haya una manera mejor, pero espero que te sirva de idea


Título: Re: sacar el valor de la constante matemática "e".
Publicado por: Miseryk en 19 Febrero 2015, 14:25 pm
para hacerlo no es tan complicado, muestra algo de progreso si quieres recibir algo de ayuda real...


si quieres hacerlo en alta precisión (miles o millones de decimales) aquí un tema con un poco de eso

Calculo de pi en alta precisión (aporte)  (https://foro.elhacker.net/programacion_cc/calculo_de_pi_en_alta_precision_aporte-t412338.0.html;msg1934259#msg1934259)

Yo había visto en un proyecto de VB6 que para calcular PI usaba ésto:

Código
  1. MsgBox Atn(1) * 4
  2.  


Título: Re: sacar el valor de la constante matemática "e".
Publicado por: okik en 24 Febrero 2015, 14:32 pm
Hola,
El sábado estaba algo aburrido y me propuse averiguar otra forma de obtener el número e o base de los logaritmos naturales. Mi objetivo era obtener algo así:

2.718281828458563411277850606202642376785584483618617451918618203875586213119643873179950822014292195

Pero no lo he conseguido. Sin embargo he podido reducir la forma de calcularlo que puse en mi ejemplo anterior, eliminando la función "Factorial":

Código
  1. Dim e As Double
  2. Dim X As Integer
  3. Dim Fact As Double
  4. Fact = 1
  5.    For X = 0 To 100
  6.        If X > 0 Then Fact = Fact * CDbl(X)
  7.            e = e + (1 / Fact)
  8.    Next X
  9.  
  10. Print e


Título: Re: sacar el valor de la constante matemática "e".
Publicado por: engel lex en 24 Febrero 2015, 15:39 pm
Hola,
El sábado estaba algo aburrido y me propuse averiguar otra forma de obtener el número e o base de los logaritmos naturales. Mi objetivo era obtener algo así:

2.718281828458563411277850606202642376785584483618617451918618203875586213119643873179950822014292195

repito

si quieres hacerlo en alta precisión (miles o millones de decimales) aquí un tema con un poco de eso

Calculo de pi en alta precisión (aporte)  (https://foro.elhacker.net/programacion_cc/calculo_de_pi_en_alta_precision_aporte-t412338.0.html;msg1934259#msg1934259)