私の現在の方法では、最も正確な配列を決定できますが、有益な結果を表示するための良い方法を見つけることができません。
これが私の状況です…</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];
精度は、StaticArrayからのSingleArray値の差の絶対値を取得し、定数で除算することによって決定されます。精度の結果が1未満の場合、結果は正確であると見なされます。結果>1の場合、それは不正確であり、結果=0は完全です。
これがシナリオです...簡単にするために2つの配列を使用しましょう
S = [56、53、50、64]
A = [56、54、52、64]
B = [54、52、51、63]
Aで始まる各配列をループします。
精度については、A( 56)とS(56 )の位置[1]を比較してください。精度を決定します(定数には2つ使用します)| 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であり、AがBに対してどれだけ正確であるかを表示しようとすると、2.5はあまり意味がありません。
これらの結果を表示するための最良の方法は何でしょうか?パーセンテージを表示することを考えました…たとえば、AはBより17%優れています。または、BestArrayは平均より6%優れています。
それらの結果をどのように計算しますか?
精度を計算する私の方法に論理的な問題がありますか、またはより良い方法を知っていますか?
あなたが提供できる洞察に感謝します!