最近公司要做一个抽奖的小程序,经过两天的查阅资料,终于鼓捣出来一个。
大家如果觉得还OK ,就拿去用:
算法原理:
每个奖项都有一定的概率,比如说:0.01 0.09等等,所有奖项的概率的总和一定要为1.
对于一个奖项来说,每次中奖的概率都是一致的,只有当该奖品的数量为0 的时候,概率才会被清空,然后加到默认奖项(未中奖)中。
1、数据库设计(奖励表):
2、用的是thinkphp框架,大家凑合着看。
public function index() {
$award = M ( 'prize' );
$list = $award->select ();
$prize = $this->_get_prize (100); //基数为100
$this->assign ( 'award', $prize );
$t