Pour te faire comprendre l'absurdité de ta démarche, je vais te donner
une solution basée sur le même principe que la tienne, mais appliquée
à Polygone plutot qu'a Point3
Cette solution laisse loin derrière n'importe quel programme C++
et ne demande que 3 lignes de plus que mon code d'origine.
1) Dans la classe Polygone ajouter:
Code:
private double monAire ;
2) Dans le constructeur ajouter
Code:
monAire = -1.0;
3) En tête de la méthode aire(), ajouter
Code:
if(monAire != -1.0 ) return monAire ;
4) remplacer le return de aire par
Code:
return (monAire = 0.5 * som.norme()) ;
C'est tout !!
Essaie, je te prédis des performances à décoiffer les chauves,
et un résultat exact, sans casser le polygone.
En outre, plus on fera d'itérations sur aire(), meilleur sera le résultat.
J'intitule mon procédé "Résultat pré calculé"
(comme objet pré-instancié) et je dépose un brevet.
Ce code est totalement stupide, mais il répond à ce que tu crois être le problème:
obtenir les meilleurs chiffres possibles sur un benchmark, sans se soucier de ce à
quoi sert le benchmark. Pour y parvenir, il utilise comme le tiens une technique de
cache (mais appliquée à un plus haut niveau .... etc etc etc
Partager