Автор темы
Codeby Academy
Практика и мастерство
От основ до продвинутого — программы для практиков Codeby.
К курсу →
Автор темы
Обычная последовательность - следующий член вычисляется по предыдущим. Хочешь через рекурсию, хочешь - последовательно. Только подумать надо самому немножко.
Посчитай сначала ручками V(5), например, для понимания о чем речь.
Посчитай сначала ручками V(5), например, для понимания о чем речь.
Хмм, мдя, а может быть так и надо, чтобы программа в итоге показывала, что каждое число 0.
Примерно хоть покажите текст программы (через рекурсию желательно), чтобы там покумекал.
Примерно хоть покажите текст программы (через рекурсию желательно), чтобы там покумекал.
С помощью рекурсии: (хотя, конечно, она тут абсолютно не нужна)
З.Ы. Ну и, конечно, стоит уточнить начальные условия
Код:
double u(int i)
{
// тут определяются начальные значения последовательности
if (i<3)
return 0;
double utemp = u(i-1);// чтобы уменьшить число рекурсивных вызовов
double vtemp = v(i-2);
return (utemp-u(i-2)*vtemp-v(i-2))/(1+utemp*utemp+vtemp*vtemp);
}
double v(int i)
{
// тут определяются начальные значения последовательности
if (i < 3)
return 0;
double vtemp = v(i-1););// чтобы уменьшить число рекурсивных вызовов
return (u(i-1)+vtemp)/(abs(u(i-2)-vtemp)+1);
}
З.Ы. Ну и, конечно, стоит уточнить начальные условия
<!--QuoteBegin-Mcicool+7:05:2006, 00:45 -->
<span class="vbquote">(Mcicool @ 7:05:2006, 00:45 )</span><!--QuoteEBegin-->Да я просто совсем этой темы не понимаю... (((
Какой именно?
<span class="vbquote">(Mcicool @ 7:05:2006, 00:45 )</span><!--QuoteEBegin-->Да я просто совсем этой темы не понимаю... (((
[snapback]35151" rel="nofollow" target="_blank[/snapback]
[/quote]Какой именно?
Вот код без рекурсии. Вместо U1, V1, U2, V2 - подставляешь начальные условия, n - до какого члена считать, а в переменные Un и Vn запишутся конечные значения. Функция вернет true если все нормально или false, если n - недопустимо.
Код:
#include <math.h>
bool GetUnVn(double U1, double V1, double U2, double V2, int n, double &Un, double &Vn)
{
double Ui_1, Vi_1, Ui_2, Vi_2, Ui, Vi;
Ui_1 = U2;
Vi_1 = V2;
Ui_2 = U1;
Vi_2 = V1;
if (n < 3)
return false;
for (int i = 3; i <= n; i++)
{
Ui = (Ui_1 - Ui_2*Vi_1 - Vi_2)/(1 + Ui_1*Ui_1 + Vi_1*Vi_1);
Vi = (Ui_1 - Vi_1)/(fabs(Ui_2 + Vi_2) + 2);
Ui_2 = Ui_1;
Vi_2 = Vi_1;
Ui_1 = Ui;
Vi_1 = Vi;
}
Un = Ui;
Vn = Vi;
return true;
}
Ещё по теме
4
Поделиться: