J'ai un logiciel écrit en VB.NET qui effectue beaucoup de calculs, en extrayant principalement des jpegs vers des bitmaps et en calculant des calculs sur les pixels comme les convolutions et la multiplication matricielle. Différents ordinateurs me donnent des résultats différents malgré des entrées identiques. Quelle pourrait être la raison?Pourquoi différents ordinateurs peuvent-ils calculer différents résultats arithmétiques dans VB.NET?
Modifier: Je ne peux pas fournir l'algorithme car il est propriétaire, mais je peux fournir toutes les opérations concernées:
- ULONG \ ULONG (division Turuncating)
- Bitmap.Load ("nom de fichier. BMP ») (Charger une image dans la mémoire)
- Bitmap.GetPixel (Integer, Integer) (Obtenir la luminosité d'un pixel)
- Double + Double
- Double * Double
- Math.sqrt (Double)
- Math.PI.
- Math.cos (Double)
- ULONG - ULONG
- ULONG * ULONG
- ULONG < < ULONG
- List.OrderBy (Of Double) (Func)
Hmm ... Est-il possible que OrderBy utilise un QuickSort non stable et à QuickSort utilise un pivot aléatoire? Modifier: Juste testé, non. Le tri est stable.
Est-il possible de donner quelques exemples simples? Il y a peut-être chez eux un motif que quelqu'un peut reconnaître, mais sans échantillon, c'est beaucoup plus de spéculation. – FrustratedWithFormsDesigner
Je suggérerais d'essayer de trouver le premier point auquel les calculs commencent à différer. Cela pourrait vous permettre de réduire le problème à une seule opération primitive qui produit des résultats différents avec les mêmes entrées. Y a-t-il des différences notables entre les différentes machines? Est-ce qu'ils utilisent tous les deux le même système d'exploitation? Sont-ils tous les deux 32 bits (ou les deux 64 bits)? À quel point les résultats que vous obtenez sont-ils différents?De minuscules différences dans les valeurs à virgule flottante, ou quelque chose de plus significatif que cela? Avez-vous des résultats différents sur une seule machine? –
Je ne suis pas en contrôle des ordinateurs fournissant des résultats différents. Je ne sais même pas quels ordinateurs ils sont. Juste les utilisateurs se connectant à mon serveur et fournissant et résultat incohérent d'une équation compliquée. – Eyal