很多站长朋友们都不太清楚php根据概率取值,今天小编就来给大家整理php根据概率取值,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 php怎么根据概率获取数组相应内容? 2、 php取随机数概率算法 3、 php ThinkPhP 5.1 按概率生成随机数? 4、 php 表里面按百分比概率提取某个字段值出现一个该如何实现? php怎么根据概率获取数组相应内容?再次遍历$lottery_arr。把chance进行处理后作为键名。没搞明白你的意思。好像你的数组中存在min与max。这就是一个概率的精度吧。但是有了这个,就没必要有chance了吧。你的表达不是很清楚。
php取随机数概率算法//首先定义概率数组
$Probability["1-10"] = 0.6;
$Probability["11-50"] = 0.25;
$Probability["51-100"] = 0.10;
$Probability["101-200"] = 0.05;
//扩大1000倍便于计算
foreach($Probability as $k => $v){
$Probability[$k] = $v*1000;
}
$Num = 0;
$Random = rand(1,1000);//生成随机数
foreach($Probability as $k => $v){
if( $Num < $Random $Random <= $v+$Num){
//进入这里表示随机数在哪一个范围内
$Range = explode("-", $k);
//生成范围区间的随机数
$Result = rand($Range[0],$Range[1]);
echo $Result;
break;
}else{
$Num += $v;
}
}
php ThinkPhP 5.1 按概率生成随机数?echo (rand(1,100) <= 70 ? rand(1,50) : rand(51,100))/100;
先说明:伪随机
rand(1,100)产生1~100范围内随机数
如果 产生的随机数 小於等於 70
返回 1~50 随机数
否则返回 51~100 随机数
最後随机数/100即可。
为什麼除以100,是因为rand 的参数均为int,所以放大100倍获取随机,得出结果後再缩小100倍刚好就是分了。
php 表里面按百分比概率提取某个字段值出现一个该如何实现?不知道php里有没有random函数,如果有的话,你可以通过random函数(取值小于1的均匀分布函数)再乘以100判断,若其小于等于10,则select A,若10-35则B,若35-65则C,若65-100则DPS:你百分比总和不为100厄,可能最后一个错了吧?
关于php根据概率取值的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于php根据概率取值 php获取随机数的详细内容...