php如何设计这种抽奖的结果!

假设 有一个奖品A,奖品只有1个,是200元的面膜,有99人去参加抽奖,只有3个人,中奖,其他96人都不中奖。这种算法怎么实现比较好呢?

阅读 1.7k
2 个回答

偷懒做法

function draw($arrUser, $cntWin)
{
    $arrWin = [];
    while($cntWin > 0)
    {
        shuffle($arrUser);
        $arrWin[] = array_shift($arrUser);
        $cntWin --;
    }
}

$arrUser = ['user-1', 'user-2', ... 'user-99'];
$cntWin = 3;
$arrWin = draw($arrUser, $cntWin);

var_dump($arrWin);

1.把中奖概率设置为1/33
2.抽中奖后记录起来
3.当第三个抽中后把中奖概率设置为0

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题