当前位置:首页 » 编程语言 » php几率

php几率

发布时间: 2022-12-30 17:53:32

‘壹’ php生成随机数,1-15之间,2出现的概率是80% 然后其它数字出现的概率是10%

$rand = 0; // 定义rank随机变量
if(mt_rand(1,100) <= 80) { // 控制2出现的概率为80%
$rand = 2;
} else { // 剩余数字的概率为20%
$rand = mt_rand(2,15); // 排除掉2号位置,用1去补2号位
if($rand == 2) { // 当随机到2号位,则用1去补2号
$rand = 1;
}
}
echo $rand; // 输出结果

http://w3school.com.cn/php/func_math_mt_srand.asp

‘贰’ php一个抽奖函数(自定义中奖项数和概率)

解决思路如下:
1)以数字区段来对应中奖情况例如有一、二、三等奖,各自的中奖概率分别为10%、20%、30%那么有如下划分:1-10,一等奖;11-30,二等奖;31-60,三等奖,60以上,未中奖

2)产生一个1~100之间的随机数,看随机数属于哪个奖项区域,以确定中奖情况

‘叁’ ​php怎么根据概率获取数组相应内容

再次遍历$lottery_arr。把chance进行处理后作为键名。没搞明白你的意思。好像你的数组中存在min与max。这就是一个概率的精度吧。但是有了这个,就没必要有chance了吧。你的表达不是很清楚。

‘肆’ 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 如何随机生成指定数字和概率

亲,你可以这样做呦!~~

如果只有这三个数,是不好弄出 0:85% 1:5% 2:10%的

但是你如果想提高某个数字出现的概率,你可以适当让这个数组增多。

你可以这样写:

<?php


//定义一个数组,里面有85个0
$num0=array_fill(0,85,0);
//定义一个数组,里面有5个1
$num1=array_fill(1,5,1);
//定义一个数组,里面有10个2
$num2=array_fill(2,10,2);
//总数组,里面总共100个元素
$allNum=array_merge($num0,$num1,$num2);
//随机取一个元素
$randKey=array_rand($allNum);
$randnum=$allNum[$randKey];

//以上就可以实现出现0的概率是85%出现1的概率是5%出现2的概率是10%了,因为一共一百个数,里面有85个是0,5个是1,10个是2

希望可以帮到你呦!~如果有不正确的地方,欢迎指正!~~

本人博客:https://www.boboidea.com ,欢迎交流学习!~~

‘陆’ php里 ,怎么让数字按不同比 出现,如 1有%10几率出现 2有%30出现 3有%60机会 出现 等等。。

<?php
$myjilv = array(//配置出现几率
1 => array(1,10),
2 => array(11,30),
3 => array(31,100)
);
function dbt($jilv){//根据几率表产生对应的数字
mt_srand((double)microtime()*1000000);
$randval = mt_rand(1,100);
foreach($jilv as $k => $v){
if($randval>=$v[0] && $randval<=$v[1]){
return $k;
}
}
}
echo dbt($myjilv);
?>

‘柒’ 通过数组每个元素的出现概率,随机得到一个元素,用php

估计可能是这个意思,比如说 array(1,2); 随机得到一个元素1的几率50%,array(1,1,2);随机得到元素1的几率66.7%。猜测可能是这个意思

‘捌’ php取随机数概率算法

//首先定义概率数组
$Probability["1-10"]=0.6;
$Probability["11-50"]=0.25;
$Probability["51-100"]=0.10;
$Probability["101-200"]=0.05;
//扩大1000倍便于计算
foreach($Probabilityas$k=>$v){
$Probability[$k]=$v*1000;
}

$Num=0;
$Random=rand(1,1000);//生成随机数
foreach($Probabilityas$k=>$v){
if($Num<$Random&&$Random<=$v+$Num){
//进入这里表示随机数在哪一个范围内
$Range=explode("-",$k);
//生成范围区间的随机数
$Result=rand($Range[0],$Range[1]);
echo$Result;
break;
}else{
$Num+=$v;
}
}

‘玖’ PHP怎么生成4位随机纯数字重复几率要万分之一以上!怎么弄啊,急!

如果要生成四位数字的验证码,则可以用函数:$srand=rand(1000,9999);会生成在1000到9999之间的随机数字,如果要生成位数的数字,可以更改最孝最大值。

‘拾’ php取随机数概率算法

问题有点模糊,我先暂时把“保留两位小数”理解成“[输出的随机数]保留两位小数”,而非其他因素保留多少小数。
又把“1-10”,理解成包括1和10在内其两数之间的小数,
把10-50,理解成10.01到50.00之间的数,不包括10.00。以此类推。

<?php
functiongenRandom(){
$p=rand(1,100);
if($p<=60)$r=rand(100,1000);
elseif($p>60and$p<=85)$r=rand(1001,5000);
elseif($p>85and$p<=95)$r=rand(5001,10000);
else$r=rand(10001,20000);
return$r/100;
}
$a=array();
$total=50000;
for($i=0;$i<$total;$i++){
$c=genRandom();
if($c>=1and$c<=10)$p=0;
elseif($c>10and$c<=50)$p=1;
elseif($c>50and$c<=100)$p=2;
elseif($c>100and$c<=200)$p=3;
else$p=4;
if(!array_key_exists($p,$a))$a[$p]=1;
else$a[$p]++;
}
if(!array_key_exists(4,$a))$a[4]=0;
echo"总样本数".$total.'<br/>';
echo"1-10样本数".$a[0].',占'.($a[0]/$total*100).'%<br/>';
echo">10-50样本数".$a[1].',占'.($a[1]/$total*100).'%<br/>';
echo">50-100样本数".$a[2].',占'.($a[2]/$total*100).'%<br/>';
echo">100-200样本数".$a[3].',占'.($a[3]/$total*100).'%<br/>';
echo"其他样本数".$a[4].',占'.($a[4]/$total*100).'%<br/>';
总样本数50000
1-10样本数30052,占60.104%
>10-50样本数12404,占24.808%
>50-100样本数4993,占9.986%
>100-200样本数2551,占5.102%
其他样本数0,占0%
热点内容
安卓西瓜视频如何去水印 发布:2025-07-02 11:58:40 浏览:962
算法所需 发布:2025-07-02 11:50:29 浏览:311
linux删除组中的用户 发布:2025-07-02 11:48:09 浏览:367
编程员是什么 发布:2025-07-02 11:43:03 浏览:636
如何更改笔记本电脑密码方式 发布:2025-07-02 11:34:07 浏览:52
安卓平板不知道怎么选 发布:2025-07-02 11:33:22 浏览:16
qq空间怎么设密码 发布:2025-07-02 11:30:29 浏览:719
跑跑卡丁车如何更改服务器 发布:2025-07-02 11:27:35 浏览:300
我的世界112服务器存档 发布:2025-07-02 11:25:02 浏览:949
php类函数调用 发布:2025-07-02 11:24:27 浏览:26