Test Foro de elhacker.net SMF 2.1

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 (vb) [Seleccionar]
Private Sub Command1_Click()
Dim e As Variant
Dim i As Variant
For i = 0 To (100)
e = e + (1 / Factorial(i))
Next i
Print e
End Sub

Private Sub Command2_Click()
Dim e As Variant
e = (1 + 1 / 10000000000#) ^ 10000000000#
Print e
End Sub

Public Function Factorial(NumFactorizar As Variant) As Variant
Dim X As Variant
X = NumFactorizar
For i = 1 To NumFactorizar - 1
X = X * (NumFactorizar - i)
Next i
If X = 0 Then X = 1
Factorial = X
End Function


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
Cita de: 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)

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

Código (vb) [Seleccionar]

MsgBox Atn(1) * 4
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 (vb) [Seleccionar]
Dim e As Double
Dim X As Integer
Dim Fact As Double
Fact = 1
    For X = 0 To 100
        If X > 0 Then Fact = Fact * CDbl(X)
            e = e + (1 / Fact)
    Next X

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
Cita de: 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

repito

Cita de: engel lex en 17 Febrero 2015, 13:59 PM
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)