Vite fait comme ça, mais c'est à tester : en posant f(x) = (x+1.8)/(x²+1)
On a f(0) = 1.8, et f(x -> +oo) -> 0.
Donc en posant g(x) = f(x)+0.1
On aurait g(+oo) = 0.1, et g(0) = 1.9
Tu pourrais donc calculer dégats = g(DEF/ATK) * C = ( 0.1 + ( (DEF/ATK+1.8)/(DEF²/ATK²+1) ) ) * C
Par contre autant je pense être OK sur ces limites, autant je n'ai aucune idée de son tracé, donc il faudrait que tu analyses un peu la fonction avant de l'appliquer.
Voici quelques valeurs d'exemple :
Pour gérer la vitesse d'aplatissement de la fonction tu peux jouer sur la puissance du x en dénominateur.
On a f(0) = 1.8, et f(x -> +oo) -> 0.
Donc en posant g(x) = f(x)+0.1
On aurait g(+oo) = 0.1, et g(0) = 1.9
Tu pourrais donc calculer dégats = g(DEF/ATK) * C = ( 0.1 + ( (DEF/ATK+1.8)/(DEF²/ATK²+1) ) ) * C
Par contre autant je pense être OK sur ces limites, autant je n'ai aucune idée de son tracé, donc il faudrait que tu analyses un peu la fonction avant de l'appliquer.
Voici quelques valeurs d'exemple :
Citation :g(0) = 1.9
g(1) = 1.5
g(2) = 0.86
g(3) = 0.58
g(4) = 0.441176470588
g(5) = 0.361538461538
g(6) = 0.310810810811
g(7) = 0.276
g(8) = 0.250769230769
g(9) = 0.231707317073
g(10) = 0.216831683168
g(11) = 0.204918032787
g(12) = 0.195172413793
g(13) = 0.187058823529
g(14) = 0.180203045685
g(15) = 0.174336283186
g(16) = 0.169260700389
g(17) = 0.164827586207
g(18) = 0.160923076923
g(19) = 0.157458563536
g(20) = 0.154364089776
Pour gérer la vitesse d'aplatissement de la fonction tu peux jouer sur la puissance du x en dénominateur.
Code PHP :
<?php
define('PUISSANCE_DE_X', 2);
function f($x) { return ($x+1.8)/(pow($x,PUISSANCE_DE_X)+1) + 0.1; }
for ($i=0; $i<=10; $i++) {
echo "f($i) = " . f($i) . "\r\n";
}
?>
Voici les 10 premières valeurs pour PUISSANCE_DE_X = 3 :
Citation :g(0) = 1.9
g(1) = 1.5
g(2) = 0.522222222222
g(3) = 0.271428571429
g(4) = 0.189230769231
g(5) = 0.153968253968
g(6) = 0.135944700461
g(7) = 0.125581395349
g(8) = 0.11910331384
g(9) = 0.114794520548
g(10) = 0.111788211788
Et les 10 premières valeurs pour PUISSANCE_DE_X = 1.5 :
Citation :g(0) = 1.9
g(1) = 1.5
g(2) = 1.09257472486
g(3) = 0.874674293423
g(4) = 0.744444444444
g(5) = 0.658276703508
g(6) = 0.596912185871
g(7) = 0.550813686437
g(8) = 0.514772380783
g(9) = 0.485714285714
g(10) = 0.461710474374