用户每天随机百分60概率算法
问题:每天每个用户有60%的概率获奖
思路:每天生成一个随机码,当天时期*随机码*用户id,得到的数字,取最后一位数(最后一位数字可能是0-9),判断小于4的概率为40%,大于等于4的概率为60%,命中60%则通过
参数说明:
$userid //用户id
$randcode//每天随机码
//判断是否存在随机码,如果不存在则生成
if(Cache::get('randcode')){
$randcode = Cache::get('randcode');
}else{
$randcode = rand(0,9);
//随机码有效时间为当天的剩于结束时间
$end_time=strtotime(date("Y-m-d",time()))+60*60*24;
$time = $end_time-time();
Cache::set('randcode',$randcode,$time);
}
//混算,取最后一位数字
$num = date('Ymd',time())*$random*$userid;
$num = str_split($num);
$number = $num[count($num) - 1];
//每天60%百分比
if($number<4){
return ‘不通过’;
}else{
return ‘通过’;
}