|
Главная | Правила | Регистрация | Дневники | Справка | Пользователи | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
|
Опции темы | Опции просмотра |
06.10.2018, 19:11 | #1 (permalink) |
Новичок
Регистрация: 06.10.2018
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Задача на рекуррентность
Во вложении описана данная функция. Нужно написать программу, которая принимает два аргумента и выводит значение функции.проблема в том, что программа работает медленно, и у меня проблема с пониманием как правильно использовать мемоизацию. то есть если значение не было посчитано раннее, нужно вычислять. На вводе программа будет запрашивать два числа ( 1<=n>=50 и i >=0). Пример ввода и вывода во вложении. Спасибо заранеею int fm[50]; int F(int n, int i){ int f; int fsum=0; if (fm[f]==0){ if(i < n){ return i; }else{ for(int j = 1; j <= n; j++){ f = j * F(n, i-j); if(j%2==0){ f=-f; } fsum+=f; fm[n]=fsum; }}} return fm[n]; } |
06.10.2018, 19:11 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Прочитайте схожие топики, это не должно занять много времени Задача Задача на Си задача на С++ Задача Задача |
06.10.2018, 19:55 | #2 (permalink) | |
Радиоинженер
Регистрация: 25.09.2012
Адрес: г.Дзержинск Нижегородской обл.
Сообщений: 25,273
Записей в дневнике: 7
Сказал(а) спасибо: 291
Поблагодарили 219 раз(а) в 70 сообщениях
Репутация: 110185
|
Цитата:
Рекуррентность - это нечто другое. Рекурсия всегда медленно работает если не принять специальных мер к сохранению стеков. Это пока для Вас рано, придётся подождать. И какую программу Вам написать? Головную (main), которая состоит из 4 строк (2 accept, вызов функции и print)? Сами не справитесь? |
|
06.10.2018, 20:08 | #4 (permalink) |
Радиоинженер
Регистрация: 25.09.2012
Адрес: г.Дзержинск Нижегородской обл.
Сообщений: 25,273
Записей в дневнике: 7
Сказал(а) спасибо: 291
Поблагодарили 219 раз(а) в 70 сообщениях
Репутация: 110185
|
А Вы способны это понять? Понятие "стек" Вам известно?
Что-нибудь знаете про распределение оперативной памяти? Про функции CALLOC, MALLOC что-нибудь слышали? |
06.10.2018, 20:12 | #5 (permalink) |
Новичок
Регистрация: 06.10.2018
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
calloc и malloc - да.
В любом случае, мне ничего не мешает хотя бы попытаться понять. |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
06.10.2018, 20:15 | #6 (permalink) |
Радиоинженер
Регистрация: 25.09.2012
Адрес: г.Дзержинск Нижегородской обл.
Сообщений: 25,273
Записей в дневнике: 7
Сказал(а) спасибо: 291
Поблагодарили 219 раз(а) в 70 сообщениях
Репутация: 110185
|
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
Метки |
задача, массив, помощь, рекурсия |
Опции темы | |
Опции просмотра | |
|
|