【发布时间】:2010-01-15 09:37:17
【问题描述】:
我当前的方法允许我确定最准确的数组,但我无法找到显示信息结果的好方法。
这是我的情况……
我将 X 个整数数组与 静态 整数数组进行比较。对于数组中的每个位置,我通过与静态数组中的等效位置进行比较来计算位置的准确性结果。在确定阵列的最后一个位置精度结果后,我存储该阵列的所有精度结果的总和,以供稍后比较。
一旦保存了每个数组的所有准确度结果的总和,它们就会相互比较。 总和最小的数组被认为是最准确的。
伪代码……
foreach (ComparableArray as SingleArray) {
for (i = 0; i < count(SingleArray); i++) {
AccuracyResults[SingleArray] += |StaticArray[i] - SingleArray[i]| / CONSTANT;
}
}
BestArray = AscendingSort(AccuracyResults)[0];
准确度是通过将 SingleArray 值与 StaticArray 的差值的绝对值除以某个常数来确定的。如果准确度结果为,则认为结果准确。如果 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;准确,因为
|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%。
我将如何计算这些结果?
您在我计算准确性的方式中发现任何逻辑问题或知道更好的方法吗?
感谢您提供的任何见解!
【问题讨论】: