news 2026/5/1 3:39:59

php 随机红包数生成

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
php 随机红包数生成
无论哪种实现方式,随机红包都要遵守几个核心约束(这是和单纯随机数最大的区别):
  1. 总金额固定(比如 100 元分 10 个红包);
  2. 每个红包金额非空(至少 0.01 元,避免分到 0);
  3. 金额随机且符合 “拼手气” 特性(有人多有人少,而非平均);
  4. 所有红包金额之和严格等于总金额。
/** * 随机分配红包金额. * * @param float|string $totalMoney 总金额(元) * @param int $totalTimes 总次数 * @param float|string $minMoney 单次最小值(元) * @param float|string $maxMoney 单次最大值(元) * * @return array|false 包含每次红包金额的数组(保留两位小数)|false 参数错误时返回false */ function random_red_packet($totalMoney, $totalTimes, $minMoney, $maxMoney) { // 转换为分进行计算,避免浮点数精度问题 $totalMoneyCent = (int) bcmul($totalMoney, 100); $minMoneyCent = (int) bcmul($minMoney, 100); $maxMoneyCent = (int) bcmul($maxMoney, 100); // 参数合法性校验 if ( $totalTimes <= 0 || $minMoneyCent <= 0 || $maxMoneyCent < $minMoneyCent || $totalMoneyCent < $totalTimes * $minMoneyCent // 总金额不足以分配最小值 || $totalMoneyCent > $totalTimes * $maxMoneyCent // 总金额超过最大值总和 ) { return false; } $redPackets = []; $remainingCent = $totalMoneyCent; $remainingTimes = $totalTimes; for ($i = 0; $i < $totalTimes; ++$i) { // 最后一次直接分配剩余金额 if (1 == $remainingTimes) { $currentCent = $remainingCent; } else { // 计算当前可分配的最大金额:不超过单红包最大值,且剩余次数能满足最小值 $maxCurrentCent = min( $maxMoneyCent, $remainingCent - ($remainingTimes - 1) * $minMoneyCent ); // 随机生成当前红包金额(在最小值和最大可分配金额之间) $currentCent = mt_rand($minMoneyCent, $maxCurrentCent); } // 转换为元并保留两位小数 $redPackets[] = bcdiv($currentCent, 100, 2); // 更新剩余金额和次数 $remainingCent = bcsub($remainingCent, $currentCent, 2); --$remainingTimes; } // 打乱数组(可选,模拟随机顺序) shuffle($redPackets); return $redPackets; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 12:14:11

拖延症福音:AI论文写作软件,千笔ai写作 VS 万方智搜AI,自考党必备!

随着人工智能技术的迅猛迭代与普及&#xff0c;AI辅助写作工具已逐步渗透到高校学术写作场景中&#xff0c;成为专科生、本科生、研究生完成毕业论文不可或缺的辅助手段。越来越多面临毕业论文压力的学生&#xff0c;开始依赖各类AI工具简化写作流程、提升创作效率。但与此同时…

作者头像 李华
网站建设 2026/4/30 2:32:26

springboot地区特色农产品团购平台 小程序

目录系统概述核心功能技术架构创新点应用价值项目技术支持可定制开发之功能亮点源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作系统概述 SpringBoot地区特色农产品团购平台小程序是一个基于SpringBoot框架开发的电商平台&#xff0c;专注于…

作者头像 李华
网站建设 2026/4/23 9:32:01

好写作AI:当你的研究伙伴是个“AI同事”——人机协作的甜蜜与界限

导语&#xff1a;如果你的实验室来了个24小时不眠、精通30门学科、还从不说“我要休假”的新同事想象一下这样的场景&#xff1a;凌晨三点&#xff0c;你卡在一个概念上&#xff0c;它秒回&#xff1a;“这个理论其实可以从三个角度突破...”你只提供了模糊想法&#xff0c;它整…

作者头像 李华
网站建设 2026/4/24 14:27:59

好写作AI:当模型章节写成“天书”,AI就是你的首席翻译官

导语&#xff1a;如果你的创新算法连导师都看不懂&#xff0c;那它可能真的“过于创新”了理工科同学的日常魔幻现实&#xff1a;实验室熬了三个月搞出的新模型&#xff0c;答辩时评委问&#xff1a;“所以你的创新点到底是&#xff1f;”明明算法效果提升了15%&#xff0c;写出…

作者头像 李华
网站建设 2026/4/27 19:03:17

机器人电子鼻现状透视:嗅觉升级之路仍有难关待破

摘要&#xff1a;本文详细介绍机器人电子鼻的四种核心类型&#xff08;金属氧化物、电化学、光学、场效应晶体管传感器&#xff09;及其优缺点&#xff0c;分析当前电子鼻面临的“嗅觉疲劳”、复杂气流中气味追踪困难等挑战&#xff0c;结合最新研究成果展望传感器材料与AI融合…

作者头像 李华