Question

J'ai problème mathématique que je suis incapable de convertir en PHP ou expliquer différemment. Quelqu'un peut-il envoyer mon dans la bonne direction?

I ai deux nombres qui sont dans l'ordre (séquence). #1 et #2. Je veux comparer en quelque sorte ces deux chiffres et d'obtenir un nombre positif inférieur à 100 que le résultat de la comparaison. Plus les valeurs, plus le résultat devrait être. Toutefois, si #2 est également élevé, le résultat devrait être « estompé » en conséquence ...

Ce sont les "résultats attendus" :

#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

Le nombre de valeurs (ou de 1 2) sont rangés entre 0 et 1000. Les résultats sont que des estimations, ils seront évidemment différentes. Je veux juste montrer comment il est lié.

Était-ce utile?

La solution

Au début, vous devriez essayer de mettre en place un modèle mathématique propre en définissant une fonction (mathématique) f (x, y) = z où x = # 1, y = 2 et z = votre sortie. Je ne pouvais pas dire une telle fonction par vos données, mais c'est la base dont vous avez besoin chaque fois que vous voulez mettre en œuvre votre problème dans un langage de programmation.

Alors disons que vous voulez quelque chose comme

  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 ); }

Maintenant, vous pouvez appeler cette fonction à partir du code ou par exemple via un formulaire HTML.

Autres conseils

Sons comme une occasion d'ajuster une courbe aux données et les utiliser ces coefficients pour donner un résultat pour deux variables d'entrée.

Pour commencer, vous tracer les résultats attendus sur papier millimétré, si vous avez une parcelle qui fait sens.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top