ltchris wrote:yep!
avec qu'il y est le NaN je verifie que le calcul est exact à 10^-17 pres , soit la precisiondu double. Je vois mal comment pourrai y avoir un probleme d'indice.
Etant super nul en math, je n'oserais pas faire de remarque sur les formules. Concernant le parcours de tableaux à l'aide d'indice, ça je connais (débordement de pile, etc...).
J'ai pris votre algorithme, j'ai remplacé les types primitifs double des tableau en objet Double. Et là, petite surprise, ça ne marche plus du tout car j'ai un superbe et tant redouté "java.lang.NullPointerException".
Ce qui signifie tout simplement l'accès a une valeur non initialisée dans le tableau (ce phénomène ne se produit pas avec les types primitifs car la valeur par défaut est 0 en java).
Effectivement, vos indices de parcours ne dépassent pas la limite de votre tableau, ça c'est géré, en revanche, la matrice étant triangulaire inférieure, le calcul de distance (puisque c'est de là qu'intervient l'erreur java) accède à la partie supérieure de la matrice (celle remplit de 0).
J'espère que ce point va vous aider. Si vous avez besoin de plus de détail "java" pour reproduire l'erreur, je vous soumettrais mon code transformé, mais il n'est pas un exemple à suivre pour les développements, c'est juste pour la validation des indices dans votre cas.
Bon courage
Etant super nul en math, je n'oserais pas faire de remarque sur les formules. Concernant le parcours de tableaux à l'aide d'indice, ça je connais (débordement de pile, etc...).
J'ai pris votre algorithme, j'ai remplacé les types primitifs double des tableau en objet Double. Et là, petite surprise, ça ne marche plus du tout car j'ai un superbe et tant redouté "java.lang.NullPointerException".
Ce qui signifie tout simplement l'accès a une valeur non initialisée dans le tableau (ce phénomène ne se produit pas avec les types primitifs car la valeur par défaut est 0 en java).
Effectivement, vos indices de parcours ne dépassent pas la limite de votre tableau, ça c'est géré, en revanche, la matrice étant triangulaire inférieure, le calcul de distance (puisque c'est de là qu'intervient l'erreur java) accède à la partie supérieure de la matrice (celle remplit de 0).
J'espère que ce point va vous aider. Si vous avez besoin de plus de détail "java" pour reproduire l'erreur, je vous soumettrais mon code transformé, mais il n'est pas un exemple à suivre pour les développements, c'est juste pour la validation des indices dans votre cas.
Bon courage