2009-11-21 5 views
0

У меня есть математическая проблема, которую я не могу преобразовать в PHP или объяснить по-другому. Может ли кто-нибудь отправить меня в правильном направлении?Как я могу преобразовать эту «математическую модель» в php?

У меня есть два числа, которые находятся в порядке (последовательности). #1 и #2. Я хочу как-то сравнить эти два числа и получить положительное число ниже 100 в результате сравнения. Чем выше значения, тем выше должен быть результат. Однако, если #2 также высока, то результат должен быть «серым цветом» соответственно ...

Это «ожидаемые результаты»:

#1: 5   #2: 10   => ~ 5 
#2: 10   #2: 5   => ~ 8 
#1: 50   #2: 60   => ~ 12 
#1: 50   #2: 100  => ~ 8 
#1: 100   #2: 50   => ~ 20 
#1: 500   #2: 500  => ~ 25 
#1: 500   #2: 100  => ~ 50 
#1: 100   #2: 500  => ~ 15 

Число (1 или 2) значения колебались между 0 и 1000. Результаты - это просто оценки, они, очевидно, будут разными. Я просто хочу показать, как это связано.

+0

Это слишком расплывчато, чтобы легко преобразовать его в PHP. Если речь идет об определении математической функции # 1 и # 2, мы должны начать с конкретных примеров, а не оценок. – pavium

ответ

1

Сначала вы должны попытаться создать чистую математическую модель, определив (математическую) функцию f (x, y) = z, где x = # 1, y = # 2 и z = ваш выход. Я не мог указать такую ​​функцию вашими данными, но это та основа, которая вам нужна, когда вы хотите реализовать свою проблему на языке программирования.

Итак, давайте скажем, вы хотите что-то вроде

 
    f(x, y) = { 
     50 + (x - y) * 50/y if y > x 
     (y - x) * 50/x  if y 

this function compares #1 (x) and #2 (y) and gives as a result a number between 50 and 100 or 0 and 50, depending whether x or y is bigger.

Implementing a mathematical function right in any programming language like PHP is very easy:

function f(x, y) { return (y > x) ? (50 + (x-y)*50/y) : ((y-x) * 50/x); }

Теперь вы можете вызвать эту функцию из кода или, например через некоторую HTML-форму.

+0

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

+0

Не могли бы вы описать этот «вид» уравнения/формулы? Это имя или что-то еще? – Ropstah

1

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

Чтобы начать работу, запишите ожидаемые результаты на графике, посмотрите, есть ли у вас сюжет, который имеет смысл.

+0

Это звучит логично для меня, однако я не математик ... Я пытаюсь построить формулу для расчета битвы между двумя юнитами в военном симуляторе. Первые значения - точки атаки, вторая - точки защиты. Всегда должен быть результат выше 0, так как каждая атака наносит урон, однако они должны постепенно увеличиваться по мере увеличения значений. Может быть, лучшее решение? – Ropstah