Ввести натуральное n. Вычислить сумму ряда двумя способами – организовав вычисления суммы слева направо и справа налево. Вывести, сравнить и объяснить полученные результаты .

Подскажите пожалуйста , как эту формулу расписать , чтобы было понятно как это ручками сперва сосчитать


Комментарии
08.12.2009 в 21:59

65 108 101 120 97 110 100 101 114
если подойти к решению задачи методом "в лоб" и без математических изысков, то примерно так:

знак суммы - внешний цикл от k (k=1) до n. в цикле вызываем рекурсивную функцию вычисления факториала с параметрами 2*k и k^2, для числителя и знаменателя. производим арифметичкие действия и сохраняем промежуточный результат. цикл повторяем и инкрементируем промежуточный результат.

что такое рекурсивная функция знаете? часто в качестве примера для рекурсивных функций используется "высчитывание" факториала числа.
08.12.2009 в 22:22

что такое рекурсивная функция знаете?

знаю, учил когдато паскаль, правда сейчас надо на C++, с этим должен разобраться


unsigned long fact(unsigned int n)
{
if(n <= 1)
return 1;
return n * fact(n - 1);
}

функцию вычисления уже нашел


значит k - не меняется, ее вначале объявлю константой


а еще есть в числителе +x^k

какое значение дать иксу?? задается перед циклом пользователем??
08.12.2009 в 22:36

внешний цикл от k (k=1) до n.

это когда слева направо?? (в сторону увеличения n)


а справа налево , в сторону увеличения n ??

..Вывести, сравнить и объяснить полученные результаты

результаты будут ведь одинаковые?? или нет?
08.12.2009 в 22:50

65 108 101 120 97 110 100 101 114
какое значение дать иксу?? задается перед циклом пользователем??
из условия задачи непонятно. предполагаю, что пользователем.

а справа налево , в сторону увеличения n ??
вы имеет ввиду в сторону уменьшения n? "запустить" цикл наоборот.

результаты будут ведь одинаковые?? или нет?
если рассуждать логически, то да. от перестановки мест слагаемых сумма не меняется.

возможно какой-то подвох есть. но, вы уж простите, голова после рабочего дня соображает слабо)
08.12.2009 в 23:00

возможно какой-то подвох есть.

буду наедятся что нет)) первый курс, вторая задача. Рановато для подвохов, хотя..))
08.12.2009 в 23:04

65 108 101 120 97 110 100 101 114
ну, тогда скорее всего хотят убедиться, что вы умеет цикл в обе стороны гонять.
09.12.2009 в 01:23

посмотрите пожалуйста, еще подправить напильником, может и норм будет
промежуточные результаты наверно над по убирать, правда отлаживать сложней,, и типы использ. данных пересмотреть...


09.12.2009 в 07:04

Я знаю, что я гений, но мне от этого ничуть не легче.
vadimpirov алгоритм совсем не верный... надо примерно так:


хотя думается мне, что соль не в вычислении в лоб :). при больших n напрямую посчитать не удастся. Но ряд сходящийся и можно заменить вычисления на оценку...
даже не прибегая к калькулятору, скажу что при n=100 сумма второй половины ряда примерно равно нулю.
09.12.2009 в 08:15

Люди никогда не достигнут совершенства, пока будут оставаться людьми...
mikluho, и даже при x = 100*100 при n = 100 примерно 0?)
09.12.2009 в 09:55

Я знаю, что я гений, но мне от этого ничуть не легче.
[revolver] :) вы только на знаменатель дроби посмотрите.. уже на 50-ом элементе знаменатель равен ~1,63e+7411. конечно и x может иметь очень большое значение... но всё же...
да, кстати, типа long хватит только для вычисления факториала 12!, т.е. даже до 4-го элемента ряда не дойти. типа double хватит для 170!, т.е. до 13-го элемента ряда. что означает, что считать надо совсем иначе...
09.12.2009 в 18:54

mikluho А вы уверены в правильности своего кода?? он не компилируется(( после небольшой поправки выдает странный результат..

функцию вычисления факториала взял из вики_инцикл., чем она вас не устроила?
09.12.2009 в 21:58

65 108 101 120 97 110 100 101 114
mikluho
все именно так. для того, чтобы наверняка "поставить диагноз" нужно знать точную постановку задания и то, предисловие, которое это задание предваряло.
да и рекурсивная функция при больших значения n будет, мягко выражаясь, медленной.
09.12.2009 в 22:07

есть другая задача, не моего варианта, звучит так

Найти сумму 13 членов ряда, в котором (привести варианты решения этой задачи с использованием итерационных циклов for, while)

я так понимаю в моей тож большие числа считать не надо...

а мой код совсем не правильный, не учитывая вынос повторяющихся действий в функции,,
он дает неправильные ответы??
10.12.2009 в 11:54

Я знаю, что я гений, но мне от этого ничуть не легче.
vadimpirov, в Вашем алгоритме циклы не правильные. я добрался до компилятора, вот поправленный код:


вводит n и x. выводит промежуточные результаты. все вычисления делаются в double, что бы влезали большие цифры.
как я и говорил, ряд сходящийся и сумма при больших n зависит только от x.
наглядный пример:

ясное дело, что для x=999999999 ряд сходится к 0 уже при n=14. дальнейшее увеличение n не изменяет результат.
10.12.2009 в 13:07

mikluho
Большое Вам спасибо!! за код и за разъяснения!