我目前的方法允许我确定最准确的数组,但我无法找到显示信息结果的好方法。
这是我的情况……</p>
我将X数量的整数数组与静态整数数组进行比较。对于数组中的每个位置,我通过与静态数组中的等效位置进行比较来计算位置的精度结果。在确定阵列的最后一个位置精度结果后,我存储该阵列的所有精度结果的总和,以供以后比较。
一旦保存了每个阵列的所有准确度结果的总和,它们就会相互比较。总和最小的数组被认为是最准确的。
伪代码……</p>
foreach (ComparableArray as SingleArray) {
for (i = 0; i < count(SingleArray); i++) {
AccuracyResults[SingleArray] += |StaticArray[i] - SingleArray[i]| / CONSTANT;
}
}
BestArray = AscendingSort(AccuracyResults)[0];
精度是通过将 SingleArray 值与 StaticArray 的差值的绝对值除以某个常数来确定的。如果准确度结果 < 1,则认为结果准确。如果result > 1,那么它是不准确的,results = 0是完美的。
这是一个场景......为简单起见,让我们使用两个数组
S = [ 56, 53, 50, 64 ]
A = [ 56, 54, 52, 64 ]
B = [ 54, 52, 51, 63 ]
循环遍历从A开始的每个数组。
比较 A( 56 ) 和 S( 56 ) 的位置 [1] 的准确性。确定精度(我将使用两个作为常数)|56-56|= 0 , 0 / 2 = 0 ; 完美的准确性
继续比较每个位置并计算精度 |53-54|= 1 , 1 / 2 = 0.5 ; 准确,因为 <= 1
|50-52|= 2 , 2 / 2 = 1 ; 准确的
|64-64| = 0 ; 完美的
现在计算数组 A 0 + 0.5 + 1 + 0 = 1.5的所有准确结果的总和
如果我们对数组 B 执行相同的操作,最终结果将是 1 + 0.5 + 0.5 + 0.5 = 2.5
现在,如果我们将数组 A 与 B 进行比较,我们可以看到数组A 比 B 更准确,因为总和更低。
问题是 1.5 和 2.5 在尝试显示 A 比 B 更准确时意义不大。
显示这些结果的最佳方法是什么?我考虑过显示百分比……比如 A 比 B 好 17%。或者 BestArray 比平均值好 6%。
我将如何计算这些结果?
您在我计算准确性的方式中看到任何逻辑问题或知道更好的方法吗?
感谢您提供的任何见解!