formule encore :-) [java/Math] - Java - Programmation
Marsh Posté le 12-06-2002 à 17:36:53
non
Marsh Posté le 12-06-2002 à 17:59:43
tu n'utilises pas pow pour mettre au carré
mais x*x
un conseil d'ami
LeGreg
Marsh Posté le 12-06-2002 à 18:00:59
legreg a écrit a écrit : tu n'utilises pas pow pour mettre au carré mais x*x un conseil d'ami LeGreg |
voué mais bon là j'ai pas "x", mais machinx-trucx donc bon , c lourd à lire apres
mais bon.
hmmm
Marsh Posté le 12-06-2002 à 18:06:49
Math.pow(p.x-q.x,2)
ou
(p.x-q.x)*(p.x-q.x)
meme taille de code, l'un s'execute rapidement l'autre pas
le choix est vite fait.
LeGreg
Marsh Posté le 12-06-2002 à 18:25:40
juste une remarque : le sqrt est assez lent.
et souvent, on s'apperçoit qu'on a pas vraiment besoin de la distance exacte et qu'on peut très bien se servir uniquement la la distance au carré. par exemple pour comparer 2 distances
Donc voila mon conseil : si t'as pas besoin de la distance exacte, contente toi du carré de la distance (ca t'économise le sqrt).
sinon, je pense aussi que le x*x ets plus rapide, surtout que le math.pow prend des doubles => si tu utilises des int (ou des trucs moins gros que double) ca va faire des transformations supplémentaires + un temps de calculs plus important
Marsh Posté le 12-06-2002 à 20:10:32
bon bon, je re-reflechirai a tout ça, mais a priori j'ai besoin de la distance exacte (je me vois mal inserer dans une db une colonne square_distance hein :-) -> surtout que le but est de faire du pre-process pour soulager le truc derriere:-)
ensuite, ça travaille pas avec des entiers
et pour le *, je suis bien d'accord pour un argument, mais si je soustrais deux arguments et que je veux la racine² de cette soustraction ça devient lourd à lire
celà dit bon je pourrais l'ecrire en plusieurs lignes
mais dans ce cas, le gain de perfs sera t' il aussi net?
Marsh Posté le 12-06-2002 à 21:56:32
je reve dites-moi..
tu es en train de disserter pendant une heure
pour savoir si ecrire une formule sur deux
lignes c'est pas trop pour tes petits doigts
ou quoi?
LeGreg
Marsh Posté le 12-06-2002 à 22:53:46
legreg a écrit a écrit : je reve dites-moi.. tu es en train de disserter pendant une heure pour savoir si ecrire une formule sur deux lignes c'est pas trop pour tes petits doigts ou quoi? LeGreg |
non
Marsh Posté le 12-06-2002 à 17:36:03
Le bon vieux pythagore:
Qqun a une suggestion pour faire ça mieux:
distance = Math.sqrt( Math.pow(p.x-q.x,2) + Math.pow(p.y-q.y,2) );
sachant que p et q sont deux Point dont les membres publics x et y sont les "coordonnées".
ps: euh en Java hein.
Message édité par greg@freestarthu le 06-12-2002 à 17:38:12