Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何获取两个int数组之间的差异(以百分比表示)_C#_Arrays_Math - Fatal编程技术网

C# 如何获取两个int数组之间的差异(以百分比表示)

C# 如何获取两个int数组之间的差异(以百分比表示),c#,arrays,math,C#,Arrays,Math,从数学上来说,我们可以像给定的数量/总量*100那样求解,得到百分比差。但我需要的是比较两个整数数组(在C#Win应用程序中)并得到差异的百分比。 比如: 这两列是2个整数数组,我应该得到它们之间的差异。 我怎么能得到这个?数学答案或算法,任何可以用来解决问题的方法。你所说的差异是什么意思?您可以通过以下方式获得差异数组: int[] array = new int[arr1.Length]; for (i = 0; i < array.Length; i++) { array[i]

从数学上来说,我们可以像给定的数量/总量*100那样求解,得到百分比差。但我需要的是比较两个整数数组(在C#Win应用程序中)并得到差异的百分比。 比如:

这两列是2个整数数组,我应该得到它们之间的差异。

我怎么能得到这个?数学答案或算法,任何可以用来解决问题的方法。

你所说的差异是什么意思?您可以通过以下方式获得差异数组:

int[] array = new int[arr1.Length];
for (i = 0; i < array.Length; i++)
{
  array[i] = array1[i] - array2[i];
}
int[]数组=新的int[arr1.Length];
对于(i=0;i
使用
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.
编辑:
Daniel
CD
正确。代码已更正。谢谢大家。

试试这个

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

感谢所有回答这个问题的人
这些天我想了一个解决办法,但我不确定结果如何。我怀疑我的工作,因为我正在调试它,但每次都使用另外两个包含48.000多个元素的数组。 到目前为止,我的解决方案是:

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

用于(int i=0;在这里,你必须确保数组的长度相同,除非我的数学不太好,否则这是平均值。@Joel-除非我的阅读技能不好,否则我可以阅读旁边的注释。这不是两个数组的叉积/笛卡尔连接吗?你需要按索引号链接这两个数组。@decyclone:you可以改用Array.Zip方法:
array1.Zip(array2,(a1,a2)=>(a1+a2)/2)
在你的问题中手动进行你想要的数学运算,这样我们就可以了解你到底需要什么。我不确定是否可以用数学的方式解释,但我需要与整数数组进行比较,得到相等或相似的百分比,我需要找出两个整数数组的相似程度。我希望我足够清楚。我的意思是n这两个数组之间的差异百分比,如相等百分比或置信百分比。
for(int i=0;i<arr1.length;i++)
{
  if(arr1[i] == arr2[i])
  count++;
}
double percentage = (float)count / (float)arr1.length * 100;