Форум программистов, компьютерный форум CyberForum.ru

Рекурентная формула - C++

Восстановить пароль Регистрация
 
dubfire
1 / 1 / 0
Регистрация: 22.02.2011
Сообщений: 27
24.03.2011, 01:15     Рекурентная формула #1
Рекурентная формула
Народ подскажите как решить, я только недавно начал сишку нешарю..., если можно то с коментами к каким-то служным записям) просто препод каждую строчку спрашивает((,зарание спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.03.2011, 01:15     Рекурентная формула
Посмотрите здесь:

Рекурентная функция C++
C++ формула в С++
Формула C++
Формула! C++
C++ Формула
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dubfire
1 / 1 / 0
Регистрация: 22.02.2011
Сообщений: 27
24.03.2011, 16:23  [ТС]     Рекурентная формула #2
Народ пилз, помогите кто сделать((
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
24.03.2011, 18:09     Рекурентная формула #3
Не вдаваясь в подробности, количество итераций неизвестно.)
Цикл должен выполняться, пока решение не сойдётся.
Т.е., чем меньше погрешность, тем больше будет итераций.
dubfire
1 / 1 / 0
Регистрация: 22.02.2011
Сообщений: 27
24.03.2011, 18:16  [ТС]     Рекурентная формула #4
Цитата Сообщение от Deviaphan Посмотреть сообщение
Не вдаваясь в подробности, количество итераций неизвестно.)
Цикл должен выполняться, пока решение не сойдётся.
Т.е., чем меньше погрешность, тем больше будет итераций.
не знаю, не знаю, вот мне кидали решение, но я т.к. недавно начал сишку не разобрался сильно(,
может кто подскажет что выполняется в double foo и в double foo2, и для чего они, прост преподу не обьяню, как она работает)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#include "conio.h"
#include "stdafx.h"
#include "iostream"
using namespace std;
 
double foo(double x0, double a, int p, double e, int &count);
double foo2(double a, int b);
 
int main ()
{
        int count = 0;
        double a = 0.;
        double x0 = 0.;
        int p = 0;
        double e = 0.;
 
        cout << "Enter a = ";
        cin >> a;
        cout << "Enter p = ";
        cin >> p;
        cout << "Enter e = ";
        cin >> e;
        
        if (a != 0. && p > 0) {
                if (a < 0 && (p % 2 == 0)) {
                        cout << "Uncorrect data" << endl;
                } else {
                        x0 = a; 
                        double t = foo(x0, a, p, e, count);
                        cout << "Result = " << t << endl;
                        cout << "Count of iterations = " << count << endl;
                }
        } else {
                cout << "Uncorrect data";
        }
    system("pause");     
}
 
double foo(double x0, double a, int p, double e, int &count) {
        
 
        double x = 0;
        double xp = 0;
        xp = foo2(x0, p - 1);
        x  = 1. / p * ((p - 1) * x0 + a /xp);
        ++count; 
        if ((a > 0 ? (x0 - x) : (x - x0) )<= e) {
                return x;
        } else {
                return foo(x, a, p, e, count);
        }
}
double foo2(double a, int b){
        double res = 1.;
        if (a == 0) {
                res = 0;
        } else {
                res = 1.;
                int t = 0;
                b > 0 ? t = b : t = -b;
                for (size_t i = 0; i < t; ++i) {
                        res *= a;
                }
                if (b < 0) res = 1 / res;
        }
 
 
        return res;
        
}
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
24.03.2011, 18:19     Рекурентная формула #5
Решение будет найдено, когда невязка будет меньше или равна заданному погрешности (е). Когда это будет - неизвестно. Вместо цикла - рекурсия. Т.к. количество циклов неизвестно, то, возможно, зря рекурсия.
dubfire
1 / 1 / 0
Регистрация: 22.02.2011
Сообщений: 27
24.03.2011, 23:20  [ТС]     Рекурентная формула #6
Цитата Сообщение от Deviaphan Посмотреть сообщение
Решение будет найдено, когда невязка будет меньше или равна заданному погрешности (е). Когда это будет - неизвестно. Вместо цикла - рекурсия. Т.к. количество циклов неизвестно, то, возможно, зря рекурсия.
ну задание, с универа, т.е. решение в ней есть,а как решить хз, ПОДСКАЖИТЕ КТО ПЛИЗ((
Yandex
Объявления
24.03.2011, 23:20     Рекурентная формула
Ответ Создать тему
Опции темы

Текущее время: 10:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru