0

好吧,假设我有 1000 个点要分配。

我有 200 名排名球员要分配,但我不想平均分配。

相反,我想歪曲它,以便顶部的玩家往往比顶部的玩家少。如此有效地,我需要某种刺激正态分布一侧的函数。

我该怎么做?

4

1 回答 1

0
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;
}

很多方法可以根据您的需要进行调整。但这是非常基本的。它计算出要给出的平均分,如果你在下半部分,它会加一,如果你在上半部分,它会减一。

有几个问题要问自己:

  • 返回的点必须是整数吗?
  • 每个人的积分总和是否必须等于总可用积分?
  • 您希望/需要函数返回的数量有多少多样性?
于 2012-11-05T22:44:51.727 回答