Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
17 / 17 / 5
Регистрация: 13.02.2011
Сообщений: 107
1

Умная Функция

21.04.2011, 20:40. Показов 530. Ответов 3
Метки нет (Все метки)

Есть функция которая в зависимости от входных параметров, делает сложные вычисления, а потом выдаёт результат.
Как можно реализовать, чтобы функция проверяла, запрашивался ли этот ряд входных параметров ранее, и если да то выдавать уже готовый результат, который был вычислен ранее, а если нет, то уже производить вычисления полностью?
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.04.2011, 20:40
Ответы с готовыми решениями:

Умная таблица
Подскажите, делаю автоматизацию для заполнения таблиц ecxel, но вот в чем вопрос, можно ли сделать...

Умная* печать
Доброго времени суток. Стоит задача внедрения модуля печати в готовую программу те необходимы...

Умная форма
Всем привет! Не силен в access Подскажите, пжл, делаю программу учета входящих звонков и...

Умная таблица
Добрый день Пожалуйста помогите разобратся в следующей ситуации У меня УТ с более 7000 строк,...

3
Эксперт С++
5046 / 3107 / 271
Регистрация: 11.11.2009
Сообщений: 7,045
21.04.2011, 20:46 2
Возможно, хранить статический список списков входных параметрови и при каждом вызове сверять входной список со всем узлами статического, и при совпадении выдавать вычисленный результат (его в том же списке хранить). Можно даже ассоциативный контейнер заюзать какой-нибудь.
0
49 / 49 / 15
Регистрация: 13.08.2010
Сообщений: 160
21.04.2011, 20:50 3
в С++ есть такое понятие как static переменная на уровне функции, такая переменная сохраняет свое значение между вызовами функции
чот типо
class tmp
{
public:
tmp(int _a, int _b): a(_a), b(_b){}
int a;
int b;
bool operator==(const tmp& x, const tmp& y)
{
return x.a == y.a && x.b == y.b;
}
}
int f(int a, int b)
{
static dictionary<tmp, int> d;
if(!d.contayns(tmp(a,b)))d.add(tmp(a,b), a+b);
return d[tmp(a,b)];
} //не помню как там dictionary в С++ юзается, но суть думаю ясна
2
17 / 17 / 5
Регистрация: 13.02.2011
Сообщений: 107
21.04.2011, 21:06  [ТС] 4
Цитата Сообщение от silent_1991 Посмотреть сообщение
Возможно, хранить статический список списков входных параметрови и при каждом вызове сверять входной список со всем узлами статического, и при совпадении выдавать вычисленный результат (его в том же списке хранить). Можно даже ассоциативный контейнер заюзать какой-нибудь.
Думаю можно попробовать, я сам об этом думал, но не хотелось бы перебирать этот список параметров прямым перебором, если это массив. А ассоциативный контейнер это хорошая идея, только надо будет с ним еще разобраться по лучше.
+
+
[B]2: while(i)k++[B] - Спасибо, буду разбираться!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.04.2011, 21:06

Умная изба
Начало было на предыдущем форуме. Хочется собрать систему, которая бы выполняла следующие функции:...

Умная многопоточность
Добрый день! У меня есть проект где используется многопоточность. Суть проекта - оптимизация...

Умная классификация
Доброго времени суток! Подскажите пожалуйста: Есть список что, кому и сколько нужно (экспорт из...

Умная шара
Здравствуйте! Подскажите пожалуйста как в Windows XP ограничить доступ к расшаренной папке по IP...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru