Задача
Исследовать сходимость ряда [latex]\sum_{n=1}^{\infty}\frac{ln(n!)}{n^{a}}[/latex] и вычислить его сумму при заданной точности.
Входные данные
Натуральное число [latex]a[/latex]
Выходные данные
Сумма ряда если она существует.
Тесты
входящие данные | выходящие данные |
2 | -nan |
3 | 0.578615 |
6 | 0.0146958 |
12 | 0.000172786 |
22 | 1.65259e-07 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
#include <cmath> #include <iostream> using namespace std; int poww(int a,int n) { return (!n)?1:a*poww(a,n-1); } int main() { int a; cin>>a; //ряд будет сходящимся только при a>2 double s=0; long double f=1; double e=10; for(int n=2;e>0.000001;n++){ f*=n; s+=log(f)/poww(n,a); e=log(f)/poww(n,a); } cout<<s; return 0; } |
Решение задачи
Исследуем ряд на сходимость при различных значениях переменных [latex]a[/latex]. При [latex]a\leq 1[/latex] случай тривиальный — ряд будет расходиться.
Рассчитаем его при [latex]a\geq 2[/latex]. Как видно при [latex]a=2[/latex] ряд продолжает расходиться, а при [latex]a>2[/latex] он начинает сходиться и становиться возможным вычислить его сумму.
Ссылки
Условие задачи (стр. 257)
Код на ideone
Правильно расставьте отступы.
В теле цикла у Вас дважды вычисляется очередное слагаемое в сумме в переменных s и e. Стоит поменять строки местами и избежать двойного вычисления и сэкономить время.
В решении задачи не описан алгоритм решения, а «исследована» сходимость ряда.
Уберите кирилицу из постоянных ссылок.