Функция поиска цели в PHP - PullRequest
1 голос
/ 16 июня 2009

Я хочу реализовать в PHP функциональность, аналогичную той, которая доступна в Microsoft Excel для поиска цели.

Можно ли реализовать такую ​​вещь в PHP?

Вот история подробно

Мы пишем приложение для управления личным кредитом для финансовой компании. В настоящее время они используют таблицы Excel для выполнения всех видов вычислений нагрузки, электромагнитных помех и т. Д. Теперь они хотят внедрить это онлайн, чтобы их сотрудники могли получить к нему доступ из любого места.

Здесь мы должны запрограммировать расчет процентов. Этот расчет процентов очень сложен, но достаточно сказать, что процент рассчитывается по методу уменьшения, но таким образом, что он всегда немного меньше, чем плоский процент.

Скажем, например, кто-то берет кредит в размере 10000 по ставке 10% на 12 месяцев (1 год).

В этом случае фиксированный процент составит 1000 (10000 * (10/100)).

Мы должны показать расчеты процентов заемщиков по методу уменьшения, а общий процент по методу уменьшения всегда должен быть немного меньше, чем плоский процент.

Для этого мы должны рассчитать процентную ставку, которая фактически превышает 10%. Чтобы получить точное значение, они (клиент) используют функцию поиска цели, поскольку это очень быстро.

В онлайновом программном обеспечении, которое мы разрабатываем, мы уже внедрили логику для выполнения этих вычислений, но это занимает очень очень много времени, так как нам нужно выполнить цикл, который в итерации повторяется более 100000 раз, чтобы прийти к приемлемому значению .

Надеюсь, я правильно объяснил всю ситуацию.

Ответы [ 4 ]

4 голосов
/ 17 июня 2009

Немного (немного) о том, что Goal Seek делает здесь, на сайте поддержки Microsoft . Этого может быть достаточно для начала.

В вашем случае, даже более быстрым методом будет использование чего-то вроде Ньютона-Рафсона , поскольку у вас есть известная формула для начала. Если страница википедии не помогает в достаточной мере, теперь вы знаете, что искать в Google, возможно, вы сможете найти хорошее прохождение php.

2 голосов
/ 08 апреля 2016

Формула поиска цели (формула PHP)

<?php 

/* PMT Function for goal seek formula 
 * PMT = (PV(1+i)^n) + FV)i
 *      -------------------
 *            1-(1 + i)^n
 *             
 *
 * $i = annual interest rate
 * $n = total months
 * $p = total loan amount (Principle Amount)
 */

function PMT($i,$n,$p)
{
    return $i * $p * pow((1 + $i),$n) / (1 - pow((1 + $i),$n));
} 
echo"goal seek = ",(number_format(PMT(7/1200,120,60000),2)); // This will Display result

?>
1 голос
/ 16 июня 2009

Если у вас есть функция для расчета и вам нужно запустить ее 100K раз, тогда ваш поток данных для этой функции не оптимален. Вы должны передать функции сначала грубые данные (большие промежутки между значениями), чем более мелкие.

Конечно, вам нужно закодировать немного более сложный поток управления, чем цикл biiiig while.

Простейший метод (для кодирования)

  • Вы находитесь на высокой стороне цели
  • подайте данные со скоростью * 0.5 и посмотрите, пойдут ли они на низкую сторону
  • равно: вы готовы; ниже цели: подача со скоростью * 0,75; еще выше: подача со скоростью * 0,25

Повторяйте, пока не сойдется. Просто имейте в виду, что вы хотите исключить ровно половину оставшихся значений.

Это было бы быстро.

0 голосов
/ 16 июня 2009

Поскольку PHP завершен по Тьюрингу, то да, это возможно. Конечно, вам нужно будет реализовать свои собственные алгоритмы и пользовательский интерфейс для этого. Пожалуйста, поподробнее расскажите о дизайне такой функции, о том, как вы ее видите, и, возможно, я смогу дать вам некоторые дополнительные советы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...