わかりました、配布したい 1000 ポイントがあるとしましょう。
ランク付けされた 200 人のプレイヤーを分配しますが、均等に分配したくありません。
代わりに、トップのプレーヤーがトップのプレーヤーよりも少なくなる傾向があるように、それを歪めたい. 事実上、正規分布の片側を刺激するある種の関数が必要です。
どうすればいいですか?
わかりました、配布したい 1000 ポイントがあるとしましょう。
ランク付けされた 200 人のプレイヤーを分配しますが、均等に分配したくありません。
代わりに、トップのプレーヤーがトップのプレーヤーよりも少なくなる傾向があるように、それを歪めたい. 事実上、正規分布の片側を刺激するある種の関数が必要です。
どうすればいいですか?
function grantPoints($totalavailpoints, $numusers, $rank){
$pointstogrant=$totalavailpoints/$numusers;
if($rank>$numusers/2)//he has a higher number rank, meaning he gets more points
$pointstogrant++;
else
$pointstogrant--;
return $pointstogrant;
}
これをニーズに合わせて調整する方法はたくさんあります。しかし、これはかなり基本的なことです。与える平均ポイントを計算し、下半分にいる場合は 1 を追加し、上半分にいる場合は 1 を引きます。
自問するいくつかの質問: