所以我試圖做這樣的問題:如何近似E在無窮級數用C
不過,我不完全知道從哪裏開始或究竟是什麼我期待的。另外,我被告知我應該給予程序輸入例如:零(0),很小(0.00001),而不是很小(0.1)。
我被給了這個:http://en.wikipedia.org/wiki/E_%28mathematical_constant%29作爲參考,但該公式看起來不像問題中的那個。
最後,我被告知該程序的輸入是一個小數字Epsilon。例如,您可以假設0.00001f。
您繼續添加無限序列,直到當前項的值低於Epsilon。
但總而言之,我不知道這意味着什麼。我有點理解wiki上的等式。但是,我不知道從哪裏開始解決問題。看看它,沒有人知道我應該在C中使用什麼樣的公式,什麼是「E」以及它在哪裏出現(即在公式中,我理解它假設是用戶輸入)。
到目前爲止的代碼
#include <stdio.h>
#include <math.h>
//Program that takes in multiple dates and determines the earliest one
int main(void)
{
float e = 0;
float s = 0;
float ct = 1;
float ot= 1;
int n = 0;
float i = 0;
float den = 0;
int count = 0;
printf("Enter a value for E: ");
scanf("%f", &e);
printf("The value of e is: %f", e);
for(n = 0; ct > e; n++)
{
count++;
printf("The value of the current term is: %f", ct);
printf("In here %d\n", count);
den = 0;
for(i = n; i > 0; i--)
{
den *= i;
}
//If the old term is one (meaning the very first term), then just set that to the current term
if (ot= 1)
{
ct = ot - (1.0/den);
}
//If n is even, add the term as per the rules of the formula
else if (n%2 == 0)
{
ct = ot + (1.0/den);
ot = ct;
}
//Else if n is odd, subtract the term as per the rules of the formula
else
{
ct = ot - (1.0/den);
ot = ct;
}
//If the current term becomes less than epsilon (the user input), printout the value and break from the loop
if (ct < epsilon)
{
printf("%f is less than %f",ct ,e);
break;
}
}
return 0;
}
電流輸出
Enter a value for E: .00001
The value of e is: 0.000010
The value of the current term is: 1.000000
In here 1
-1.#INF00 is less than 0.000010
所以根據大家的意見,並使用來自維基百科第四屆「紊亂」方程就像有人告訴我,這是我提出的代碼。我腦海中的邏輯似乎與每個人一直在說的一致。但是輸出完全不是我想要實現的。有沒有人有任何想法看這段代碼我可能做錯了什麼?
有很多方法可以近似估計e的值,維基百科的文章也包含了所示的近似值:http://en.wikipedia.org/wiki/E_%28mathematical_constant%29#Alternative_characterizations第四個等式。至於你的問題,只需計算分解並反轉即可。當分解的反轉小於閾值(ε - 您可以將其定義爲1e-5f或1e-6)時,您可以停止。 – nhahtdh
這是一個很好的參考:[常數e及其計算](http://numbers.computation.free.fr/Constants/E/e.html)(來自[數學常量和計算](http://數字。 computation.free.fr/Constants/constants.html))。 – deltheil
@nhahtdh只是爲了確定,你的意思是來自wiki的第4個「排列紊亂」方程,對嗎? –