如何将2个int数组之间的差异作为百分比

时间:2010-12-14 12:12:08

标签: c# arrays math

在数学上我们可以像给定金额/总金额* 100那样解决它以获得百分比差异。但我需要的是比较2个整数数组(在C#Win App中)并获得差异的百分比。 喜欢:

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

这两列是2个整数数组,我应该得到它们之间的区别 我怎么能得到这个?数学答案或算法,无论用什么来解决问题。

4 个答案:

答案 0 :(得分:1)

试试这个

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

答案 1 :(得分:0)

差异是什么意思?你可以通过以下方式获得差异:

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

答案 2 :(得分:0)

如何使用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.

编辑:DanielCD是正确的。代码已更正。谢谢你们。

答案 3 :(得分:0)

感谢所有回复此问题的人! 这些天我想到了一个解决方案,但我不确定结果。我对我的工作有疑问,因为我正在调试它,但每次使用另外2个包含超过48.000个元素的数组。 到目前为止我的解决方案就像:

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