Последовательность сумм {sn}, где sn=1+x+x2/2!+…+xn/n!, при условии 0<=x<1 "достаточно быстро" стремится к ex. Запрограммировать e^x при x [0;1) c точность. ep , тоесть за нужное число принимается первое Sn такое, что | sn-sn-1 |<ep .
Мое решение
import acm.program.*; public class HW6_3 extends ConsoleProgram { public void run() { double x=0.5; // тут ми встановлюємо 0<=x<1 double S1=0; double S2=1; int i=1; double k = readDouble("Введите погрешность: ");//тут ми встановлюємо із якою точністю працює программа |Sn-S(n-1)|<k while(Math.abs(S2-S1)>=k){
S1=S2; S2=S1+Math.pow(x, i)/faktorial(i); i++;
}
println(S2);
} private int faktorial(int i){ // for (int k=1; k<i+1; k++){ i=1*k; } return i; }
kebal, нафига писать на украинском? Да и вообще в чем прикол???
P.S. степень записывается x^n. А то хрен поймешь, что написано. И с оптимизацией всё равно беда...
Добавлено (15.10.2012, 23:54) --------------------------------------------- В общем учись студент.. Вот правильная программа без всякой фигни: public void run() { double x=0.5; // тут ми встановлюємо 0<=x<1 double S1=0; double S2=1; double c=1; int i=1; int f=1; double k = readDouble("Введите погрешность: ");//тут ми встановлюємо із якою точністю працює программа |Sn-S(n-1)|<k while(Math.abs(S2-S1)>=k){
с=c*x; f=f*i; S1=S2; S2=S1+c/f; i++;
}
println(S2);
} [VnGF]Ciklop.
Сообщение отредактировал ciklopper - Понедельник, 15.10.2012, 23:55