用php写一个百分比的触发概率,有保底次数和上限次数
时间: 2023-11-27 16:54:49 浏览: 209
php实现自定义中奖项数和概率的抽奖函数示例
以下是一个简单的 PHP 函数,可以实现百分比的触发概率,并且具有保底次数和上限次数的限制:
```php
function trigger_probability($percent, $min_count, $max_count) {
// 随机数生成器
mt_srand();
// 生成一个 0~99 的随机数
$random_num = mt_rand(0, 99);
// 如果随机数小于等于触发概率,返回 true
if ($random_num <= $percent) {
return true;
}
// 如果达到保底次数,返回 true
if ($min_count > 0) {
$min_count--;
return true;
}
// 如果达到上限次数,返回 false
if ($max_count <= 0) {
return false;
}
// 如果没有触发,且未达到保底次数和上限次数,继续尝试
$max_count--;
return trigger_probability($percent, $min_count, $max_count);
}
```
这个函数接受三个参数,分别是触发概率、保底次数和上限次数。函数内部首先使用 `mt_rand()` 函数生成一个 0~99 的随机数,然后判断这个随机数是否小于等于触发概率。如果是,函数返回 true,表示触发成功;否则,函数会判断是否达到了保底次数或上限次数,在保底次数内或未达到上限次数时继续尝试触发,否则返回 false,表示触发失败。
例如,调用 `trigger_probability(50, 3, 5)` 表示触发概率为 50%,保底次数为 3 次,上限次数为 5 次。函数会在最多尝试 5 次的情况下,保证触发成功至少 3 次。
阅读全文