2010-12-14 55 views
0

Mathématiquement nous pourrons résoudre le problème comme Montant donné/Montant total * 100 pour obtenir la différence en pourcentage. Mais ce dont j'ai besoin est de comparer 2 tableaux Integer (dans C# Win App) et d'obtenir le pourcentage de la différence. Comme :Comment calculer la différence entre 2 tableaux int en pourcentage

1 -----> -2 
2 -----> 3 
3 -----> 7 
4 -----> 456 
5 -----> 13 

Ces deux colonnes sont 2 tableaux entiers et je devrais obtenir la différence entre eux.
Comment puis-je obtenir ceci? Une réponse mathématique ou un algorithme, tout ce qui peut être utilisé pour résoudre le problème.

+0

donner l'exemple plus clair – ratty

+0

faire le calcul vous voulez manuellement dans votre question, afin que nous puissions comprendre exactement ce que vous avez besoin. – gideon

+0

Je ne sais pas si je peux expliquer sur les mathématiques, mais j'ai besoin de comparer à des tableaux entiers et obtenir le pourcentage d'égalité ou de similarité quelque chose comme ça, j'ai besoin de savoir en pourcentage comment sont similaires 2 tableaux entiers. j'étais assez clair. – Burimi

Répondre

0

Merci à tous ceux qui ont répondu à la question!
J'ai pensé à une solution ces jours-ci mais je ne suis pas sûr du résultat. J'ai des doutes sur mon travail car je le débogue mais à chaque fois avec 2 autres tableaux qui contiennent plus de 48.000 éléments. Ma solution à ce jour était comme:

for(int i=0;i<arr1.length;i++) 
{ 
    if(arr1[i] == arr2[i]) 
    count++; 
} 
double percentage = (float)count/(float)arr1.length * 100; 
0

Qu'entendez-vous par différence? vous pouvez obtenir le tableau des différences par:

int[] array = new int[arr1.Length]; 
for (i = 0; i < array.Length; i++) 
{ 
    array[i] = array1[i] - array2[i]; 
} 
+0

Je veux dire le Pourcentage de différence entre ces deux tableaux, comme le Pourcentage d'Égalité ou le Pourcentage de Confiance. – Burimi

0

Comment l'utilisation LINQ:

 Int32[] array1 = new Int32[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; 
     Int32[] array2 = new Int32[] { 9, 8, 7, 6, 5, 4, 3, 2, 1 }; 

     Int32[] array3 = array1.Zip(array2, (a1, a2) => (a1 + a2)/2).ToArray(); // Put whatever formula you want in there. 

EDIT: Daniel et CD sont corrects. Le code a été corrigé. Merci les gars.

+0

Maintenant, vous devez vous assurer que les tableaux sont de la même longueur. – decyclone

+0

@decyclone - à moins que mes maths ne soient rouillées, ce n'est pas la différence moyenne. –

+0

@Joel - à moins que mes compétences en lecture soient rouillées, je peux lire un commentaire à côté. – decyclone

1

essayer cette

var i1 = Enumerable.Range(0, 10).ToArray(); 
var i2 = Enumerable.Range(20, 10).ToArray(); 
var result = i1.Select((n, i) => n * 100/i2[i]);