导航:首页 > 源码编译 > php固定概率算法

php固定概率算法

发布时间:2025-03-31 17:42:52

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取随机数概率算法

问题有点模糊,我先暂时把“保留两位小数”理解成“[输出的随机数]保留两位小数”,而非其他因素保留多少小数。
又把“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%

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

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

2)产生一个1~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固定概率算法相关的资料

热点内容
安卓手机如何安装BT种子 浏览:794
linux重启网卡命令行 浏览:930
ug数控编程是什么 浏览:500
文件夹备注标签在哪里 浏览:611
10匹的压缩机功率是多少 浏览:576
制作app和网站哪个更简单 浏览:726
tick命令 浏览:922
单片机系统开发的应用原理 浏览:807
怎么样使用crt将服务器的文件导出 浏览:734
编译原理相对地址 浏览:301
视觉光学算法 浏览:372
文网文pdf 浏览:629
命令与征服4登陆 浏览:983
批处理输入命令提示 浏览:555
linux命令执行的过程 浏览:317
单片机中psw 浏览:341
安卓怎么打英文粗体 浏览:986
马扎克圆弧编程怎么编的 浏览:14
加密小视频怎么打开 浏览:187
解压大师视频加载失败怎么解决 浏览:596