Итоги голосования для комментария:
GrayStranger
Ну и пересчитывать каждый раз, когда меняется одна из характеристик.