抽奖算法之1

抽奖逻辑:有10个奖品,每个奖品的概率不一样,设计一种算法至少抽中其中的一个
算法讲解:10个奖品,每个奖品的概率是一个范围,把所有的范围都加到一起作为整体x,然后随机1 ~ x数字n,n落到哪个区间内,就中了哪个奖品

$奖品概率 = [10,35,50,....];
$x = array_sum($奖品概率);
$n = mt_rand();
foreach($奖品概率  as $k => $item){
   if($n < $item){
      return $k;
   }

   $n -= $item;
}
此条目发表在php, php函数集, php小程序分类目录。将固定链接加入收藏夹。