расхождения в вычислениях факториала
Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду
почему возникают расхождения при высчитывании факториала в Маткаде и Паскале?
Необходимо вычислить сумму
1-x^2/3!+x^4/5!-x^6/7!+...
написал код:
program labfivetwo;
var a,x, b,f:real;
n,i:integer;
s:extended;
begin
write('введите x=');
read(x);
write('введите n>=1. n=');
read(n);
f:=1;
for i:=1 to n do
begin
if odd(i) then a:=-1
else a:=1;
b:=exp(-1*ln(i))*exp((2*i)*ln(x))/(2*i+1);
s:=f+a*b;
end;
writeln('summa',s:8:5);
end.
Прога считает сумму, но ответ не сходится с Маткадом до десятых. Может, ошибка в коде?
Необходимо вычислить сумму
1-x^2/3!+x^4/5!-x^6/7!+...
написал код:
program labfivetwo;
var a,x, b,f:real;
n,i:integer;
s:extended;
begin
write('введите x=');
read(x);
write('введите n>=1. n=');
read(n);
f:=1;
for i:=1 to n do
begin
if odd(i) then a:=-1
else a:=1;
b:=exp(-1*ln(i))*exp((2*i)*ln(x))/(2*i+1);
s:=f+a*b;
end;
writeln('summa',s:8:5);
end.
Прога считает сумму, но ответ не сходится с Маткадом до десятых. Может, ошибка в коде?
-
- Сообщения: 296
- Зарегистрирован: 13 фев 2008, 20:10
- Откуда: Беларусь. Орша
- Контактная информация:
1) Чем закрывается последовательность?
2)не совсем верное вычисление факториала. проще посмотреть в разделе "Алгоритмы"
2)не совсем верное вычисление факториала. проще посмотреть в разделе "Алгоритмы"
Если назначен специальный человек для контроля за чистотой исходной информации, то найдется изобратательный идиот, который придумает способ, чтобы неправильная информация прошла этот контроль.
Последовательность как я понял закрывается членом
+(-)x^(2+2n)/(3+2n)!
+- в зависимости от четности n, хотя здесь это не принципиально.
А вот метод вычисления факториала действительно какой-то странный.
Я, например, считаю факториалы так:
[syntax='Delphi']
function Factor(N:integer):Integer;
var
F:integer;
begin
while N>0 do
begin
F:=Factor(N-1);
Factor:=F*N;
end;
end;
[/syntax]
+(-)x^(2+2n)/(3+2n)!
+- в зависимости от четности n, хотя здесь это не принципиально.
А вот метод вычисления факториала действительно какой-то странный.
Я, например, считаю факториалы так:
[syntax='Delphi']
function Factor(N:integer):Integer;
var
F:integer;
begin
while N>0 do
begin
F:=Factor(N-1);
Factor:=F*N;
end;
end;
[/syntax]
Ни что так не ограничивает фантазию программиста, как компилятор...
Вы о чем? здесь вообще не нужно считать факториал, если присмотрется. На это и ориентирвано задание - не решать задачу "в лоб"
It's a long way to the top if you wanna rock'n'roll
А как же без него?somewhere писал(а): здесь вообще не нужно считать факториал, если присмотрется.
Даже интересно стало.
Ни что так не ограничивает фантазию программиста, как компилятор...
Да! здесь нельзя использовать F:=Factor(N-1);
Factor:=F*N;
Factor:=F*N;
Ну вы, блин, даете - очень просто:
Код: Выделить всё
var
s, x, xn : real;
t : integer;
begin
s := 1; x := 3; xn := 1;
For t := 1 to 10 do
begin
xn := -xn*x*x / (t*2) / (t*2+1);
s := s + xn;
end;
Writeln(s:5:9);
end.
It's a long way to the top if you wanna rock'n'roll
Пожалуйста помогите очень нужно!!!!!!!!!Написать программу на Paskal, которая вычисляет среднюю длину слов в файле, который содержит текст.В данном случае будет считатьтся любая строка символов, которая начинается и заканчивается одним с следующих елеметов: пробел, запятая, точка, начало строки и конец строки.В программе должна быть обозначена функция, которая получает в качестве аргумента поток ввода с файла.