-1

スコアの配列があり、各スコアは重要度に重み付けされています。点数と各アイテムに与える重みに応じて、100 点満点の総合点を取得したいと思います。

$array_one = array(
            array(
                'score' => 1.23,
                'max' => 10,
                'weight' => 10
            ),
            array(
                'score' => 56.78,
                'max' => 100,
                'weight' => 20
            ),
            array(
                'score' => 7.56,
                'max' => 10,
                'weight' => 20
            ),
            array(
                'score' => 4.67,
                'max' => 10,
                'weight' => 30
            )
        );

したがって、アイテムの重量が大きい場合、100 点満点中のスコアのパーセンテージが大きくなります。つまり、範囲内の最大値の 50% に等しい 4 つのスコアを取得した場合、それらはすべて重量が 10、20、30 増加します。 ,40 の場合、2 番目のスコアは最初のスコアより 10% 増し、3 番目のスコアは最初のスコアより 20% 増し、4 番目のスコアは最初のスコアより 30% 増し、というように続きます。また、一部の重みは同じ 10,20,20,30 または 10,10,10,10 などになります。これが理にかなっていることを願っています。したがって、要約すると、各アイテムのスコアは最大値のパーセンテージである必要があり、スコアは 100 に対して加重されます。期待される結果は、4 つのアイテムすべてに対して 1 つの総合スコアを返す必要があります。

4

1 に答える 1

1

スコアを最大値で割り、重みを掛けて合計します。重みの合計を取り、最大スコア (100) で割ります。次に、最初の数値を 2 番目の数値で割ります。これは、[0, 100] 範囲にマッピングされた加重スコアの合計になります。

于 2012-10-30T15:01:31.627 に答える