PHP根据概率产生随机数
假设 有四个选项:a 占 10%,b占20% ,C占30% , d 占 40% ,原理就是现获取随机数,然后找区间。
当然了,选项的数量可以任意。目前默认是 总和是 100% 。如果需要别的数,修改 随机数的范围即可。
这个算法,比较简单,效率也还算高。
- $data = array(
- 'a' => 10 ,
- 'b' => 20 ,
- 'c' => 30 ,
- 'd' => 40
- );
- echo randomSelect( $data );
- function randomSelect( &$array ){
- $datas = $array ;
- if( !is_array($datas) || count($datas) == 0 )
- return ;
- asort($datas); //按照大小排序
- $random = rand(1,100);
- $sum = 0 ;
- $flag = '';
- foreach($datas as $key => $data ){
- $sum += $data ;
- if( $random <= $sum ){
- $flag = $key;
- break ;
- }
- }
- if( $flag == '' ){ // 如果传递进来的值的和小于100 ,则取概率最大的。
- $keys = array_keys($datas);
- $flag = $keys[count($keys) - 1] ;
- }
- return $flag;
- }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)