Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 21.05.2015
Сообщений: 18
1

Реализовать формулу рекурсивно

22.06.2015, 07:53. Показов 479. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Ребят срочно помогите. Задачу сдать нужно
Вот так она работает и забивает массив.
забивает по диагонали
l - некоторый массив с числами, a- двумерный массив для решений
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
void cut ()
{
    for(int m = 2; m <= k ; m++)
      for(int i = 0 ; i + m <= k ; i++)
      {
         int L = l[i+m] - l[i];
             a[i][i+m] = INT_MAX;
         for(int j = 1 ; j < m; j++)
            if( a[i][i+m] > a[i][i+j] + a[i+j][i+m] ){
               a[i][i+m] = a[i][i+j] + a[i+j][i+m];
       
            }
         a[i][i + m] += L;
 
     }
}
 
 
//Вывод функции 
template <class T>
void print(T **m,  int N) {//n -размер массива, он равен числу k
    for(int i = 0; i < N-1; ++i) {
        for(int j = 2; j <= N; ++j)
            std::cout << std::setw(4) << m[i][j]<< " " ;
        std::cout << std::endl;
    }
}
Помогите задать ее рекурсивно
Мой вариант - тот, что ниже, не реботает
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int cut (int i, int m)
{
    if (m ==2 && i == 0)
        return l[2];
     if (m >=2 && m <=k && (i+m)<=k ) {
        int L = l[i+m] - l[i];
             int rr = INT_MAX;
        for(int j = m-1 ; j < m; j++){
            std::cout << "i = " << i << ", j = " << j << ", m = " << m <<std::endl;
            if(rr > cuttingRec(i, i+j) + cuttingRec(i+j, i+m) )
               rr = cuttingRec(i, i+j) + cuttingRec(i+j, i+m);
 
        }
        rr += L;
               std::cout << " rr = " << rr<<std::endl;
return rr;
    }
 
}
Добавлено через 5 минут
Помогите задать ее рекурсивно
Мой вариант - тот, что ниже, не реботает
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int cut (int i, int m)
{
    if (m ==2 && i == 0)
        return l[2];
     if (m >=2 && m <=k && (i+m)<=k ) {
        int L = l[i+m] - l[i];
             int rr = INT_MAX;
       for(int j = m-1 ; j > 0; j--){
            std::cout << "i = " << i << ", j = " << j << ", m = " << m <<std::endl;
            if(rr > cuttingRec(i, i+j) + cuttingRec(i+j, i+m) )
               rr = cuttingRec(i, i+j) + cuttingRec(i+j, i+m);
 
        }
        rr += L;
               std::cout << " rr = " << rr<<std::endl;
return rr;
    }
 
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.06.2015, 07:53
Ответы с готовыми решениями:

Задать формулу рекурсивно
Вот формула T = min {T + (f*1 +f*2+...+f*(q-k))} f - это одномерный массив размера от 0 до N...

Рекурсия - задать формулу рекурсивно
Задать эту функцию рекурсией a - некоторый массив с числами. Этой функцией я считаю сумму...

Реализовать рекурсивно алгоритм комбинаторики
Всем привет! Хотелось бы реализовать рекурсивно следующий алгоритм комбинаторики: Ввод: abcd...

Вычислить сумму ряда с позиции N до позиции M. Функцию вычисления суммы реализовать рекурсивно.
9. Вычислить сумму ряда (-1)в степени 3n/3n! с позиции N до позиции M. Функцию вычисления суммы...

1
Просто Лис
Эксперт Python
5731 / 3530 / 1055
Регистрация: 17.05.2012
Сообщений: 10,359
Записей в блоге: 9
23.06.2015, 10:55 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void cut (int m=2){
  if (m>k) return;  
  //for(int m = 2; m <= k ; m++)
      for(int i = 0 ; i + m <= k ; i++) {
         int L = l[i+m] - l[i];
             a[i][i+m] = INT_MAX;
         for(int j = 1 ; j < m; j++)
            if( a[i][i+m] > a[i][i+j] + a[i+j][i+m] ){
               a[i][i+m] = a[i][i+j] + a[i+j][i+m];
       
            }
         a[i][i + m] += L;
     }
  m++
  cut(m);
}
0
23.06.2015, 10:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.06.2015, 10:55
Помогаю со студенческими работами здесь

Вычислить рекурсивно рекуррентную формулу для биномиальных коэффициентов
Задача на фотографии

Реализовать формулу в PASCAL
Привет, честной народ! Выручайте некомпетентного в вашем деле человека. Нужно реализовать программу...

Реализовать мат. формулу
как написать на php это выражение 111111^3 mod 9173503 некоторые говорят что так...

Реализовать формулу симпсона
Здравствуйте. Необходимо, реализовать формулу симпсона... я начал делать, сначала попытался...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru