首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

php生成微信红包数组的方法

php/ * @param $total [你要发的红包总额] * @param int $num [发几个] @return array [生成红包金额] /function getRedGift($...total, $num = 10) { $min = 0.01;//最小的红包金额$wamp = array(); $returnData = array(); for ($i = 1; $i < $num...; $i++) { $safe_total = ($total - ($num - $i) * $min) / ($num - $i); //当前允许红包金额的最大值if ($safe_total..., mt_rand(min,max)是生成min到max的随机整数,包含min和max,所以为了生成红包金额有小数,所以*100先,再100$total = $total - $money; //剩余红包总额...总结 以上所述是小编给大家介绍的php生成微信红包数组的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对ZaLou.Cn网站的支持!

1K21
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    算法思考:红包金额生成

    本篇先不关注整体架构,选择红包金额的计算方法作为分析内容。 在当时的项目中,红包金额计算主要是采用了基于一些入参的随机数生成,并且生成的是单个红包金额,并未使用队列方式做预生成。...二 题目描述 要求设计在微信群抢红包的算法,红包总金额为 m 元,分成 n 份,要求返回一个红包金额数组。...既然生成的金额数组可能不是绝对平均,那么我们再生成一次随机数组,调整初始金额数组中各元素的顺序,做个随机乱序,那么就可以接近题目要求的效果。...事实上,如果 java 中有类似 php 中 shuffle(洗牌,做数组随机乱序)的方法,那么就可以直接使用来做第二步的乱序逻辑了。更多的优化,留给大家来思考了。...随机生成红包金额,初见看起来似乎并不难,但怎样保证真正的随机且平均,并不是一个容易解决的问题。无论那种语言,我们能够调用的函数大多数都是伪随机算法,所以并不能保证这点。

    1.3K30

    PHP实现的随机红包算法示例

    本文实例讲述了PHP实现的随机红包算法。..., 红包金额用整数表示, 假设每个红包里边有x个糖豆, 每个人最少一个豆 第一种: 每个红包的最大金额是: (剩余金额/剩余红包数)*2, 需要开始的时候预先分配给每个人一个豆 function randBean...: (剩余金额/剩余红包数)*3; 但是要求每次最少发2个红包 第三种, 线段法, 随机生成几个数字, 将一个直线分成几段, 每段的长度(这个波动比较大, 不是很平均, 如果限制了每个红包的大小, 会比较麻烦...剩余人数*1个豆; 去掉这些必须剩余的豆数后, 以剩下的豆数的平均值为最大值进行随机生成本次豆数 PS:这里再为大家提供两款功能类似的在线工具供大家参考: 在线随机数字/字符串生成工具: 在线随机字符.../随机密码生成工具: 希望本文所述对大家PHP程序设计有所帮助。

    89220

    QQ 红包技术方案全解密 (一)

    2017年除夕,AR红包、刷一刷红包再创新高,抢红包用户数达 3.42 亿,共刷出红包 37.77 亿个。 那么,QQ红包的技术方案究竟是怎样的?其整体架构如何?重要的系统是如何设计的?...今年的QQ红包又做了哪些新的尝试,遇到的问题是如何解决的呢?本文将从架构开始,到手Q终端优化,再到个性化红包和AR新玩法,为大家全面解密QQ红包技术方案。...一、QQ红包整体架构及重要系统 QQ春节红包以一个又一个的整点刷红包活动贯穿年三十,在除夕夜达到顶峰,是典型的海量用户秒杀场景,如何应对海量的用户刷红包洪流,保证刷得爽,红包安全到账,是QQ红包设计要解决的关键技术难点...[1496731079981_5374_1496731080095.png] 配额信息由配额管理工具负责检查和修改,每次修改都会生成新的SeqNo。...接下文《QQ 红包技术方案全解密 (二)》

    6.2K99

    如何生成微信红包金额?

    一些前提解释 我要讨论的红包是:微信拼手气红包。 拼手机红包的一些的限制条件如下: – 每个红包最小为0.01元,所以每个红包至少要分到0.01元。...输出数据: 一个数组:数组中包括 count 个红包金额(每个金额都大于等于0.01元,所有红包的金额加起来等于总金额 amount) 一个重要问题 首先我们先确定一个重要的问题:每个红包的金额是先生成好还是在边抽边生成...为了解决高并发过程中锁的问题,明显先生成每个红包的金额更简单更效率。 我的思路 1 获取随机值 假设 100 块钱,要发10个拼手气红包。 从1—100 随机10个数字。...解决办法: 所有的红包金额需要 floor (舍掉多余的小数位) : 比如 a1 的金额 从 4.415011 –> 4.41,最后一个红包 = 红包总金额 – 已经 floor 的红包的和 不管是否小于...发现自己 = 0 ,从下一个红包中拿0.01,发现自己 = – 0.01 ,从下一个红包中拿 0.02, 直到所有的红包都 > 0 可能还有的问题: 如何避免出现100块的红包分给11个人,分成了99

    4K80

    QQ 红包技术方案全解密 (二)

    作者:许灵锋 接上文 《QQ红包技术方案全解密 (一) 》 三、红包创新玩法挑战 春节红包大战,从企业红包演变到刷一刷红包、个性化红包和AR红包,玩法不断创新,用户体验更好,活跃度提升,参与人数也从2亿增长到...字体提前绘制 个性化红包支持所有简体与繁体汉字,并支持部分简体汉字转换成繁体汉字,为了改善使用“姓氏红包”用户的体验,我们把常用的300个姓氏,使用预生成的方式,在用户手Q空闲的时候生成常用的姓氏图片保存到本地...手Q终端在空闲时绘制好字体贴图,支持定时更新背景图和字体库,对非常用字,则启动个性化字体引擎生成对应的个性化贴图。...用户在发放或收到红包时,个性化背景和字体贴图已经生成好,不需要再生成,收发红包流畅体验无损。...FLAG标志可支持扩展,在红包后台可以根据扩展,支持付费红包样式(付费购买)、特权红包样式(如超会专享)等,支持红包商城扩展各种各样的个性化红包

    1.9K00

    php微信公众号开发之现金红包

    本文实例为大家分享了php微信公众号之现金红包的具体代码,供大家参考,具体内容如下 以下有关微信支付中现金红包的开发参考自微信支付开发文档,如下图所示。...现金红包,是微信支付商户平台提供的营销工具之一,上线以来深受广大商户与用户的喜爱。商户可以通过本平台向微信支付用户发放现金红包。...用户领取红包后,资金到达用户微信支付零钱账户,和零钱包的其他资金有一样的使用出口;若用户未领取,资金将会在24小时后退回商户的微信支付账户中。 以下为本人用于测试微信支付发红包的代码片段,仅供参考。...']="没有备注"; //场景ID // $data['send_id']="PRODUCT_5"; //活动信息 // $data['risk_info']=""; // 生成签名...($transfer); // 输出请求结果数组 echo ""; print_r($arr); exit("weixin_red_packet"); } // 生成

    74810

    【产品经理大会实录】5亿红包怎么发? ——谈摇一摇红包的产品方案

    产品方案是怎么来的? 钱,用户最直接的痛点 通过前面对行业价值、商业价值的分析,大家可能基本了解为什么我们选择做摇红包这件事情。那这件事要怎么做呢?...根据这两个用户需求我们推出了产品的解决方案,首先要尽可能覆盖更多的用户,然后就是体验要爽。 摇得要爽 ? 对于体验爽,我个人的理解,首先为:一个目标一个操作。...不要因为技术原因而妥协,这里不是说技术同学的问题,而是说产品经理经常为了推进项目,太快妥协,放弃了一些有挑战性的技术解决方案。举个例子,没有摇到的页面底下有显示剩余的红包数。...后来我们拉了开发,开发哥巨给力,在短时间内就出了一套保证真实数据的解决方案。...微信摇红包方案,我们是临近春晚才发预告的。友商很早就有了详细时间表,和课程表一样,而且不断地强调一大波钱。

    91160

    PHP 生成器入门

    PHP 在 5.5 版本中引入了「生成器(Generator)」特性,不过这个特性并没有引起人们的注意。...在官方的 从 PHP 5.4.x 迁移到 PHP 5.5.x 中介绍说它能以一种简单的方式实现迭代器(Iterator)。 生成器实现通过 yield 关键字完成。...生成器是 PHP 中的一个很特别的函数。当一个函数包含 yield,那么这个函数即不再是一个普通函数,它永远返回一个「Generator(生成器)」实例。...执行 return; 语句的唯一目的是结束生成器执行。 不过从 PHP 7.0 起支持返回值。...这就是需要生成器需要有返回值的意义,这也是为何我们将这个特性加入到 PHP 7.0 中的原因,我们会将最后执行的yield 值作为返回值,但这不是一个好的解决方案

    2K10

    php生成

    当一个生成器被调用的时候,它返回一个可以被遍历的对象.当你遍历这个对象的时候(例如通过一个foreach循环),PHP 将会在每次需要值的时候调用生成器函数,并在产生一个值之后保存生成器的状态,这样它就可以在需要产生下一个值的时候恢复调用状态...php //定一个函数 function gen_one_to_three() { //for循环 for ($i = 1; $i <= 3; $i++) { //注意变量...php //定义xrange函数 function xrange($start, $limit, $step = 1) { //如果start小于limit那么就 if ($start...生成一个键值对:这里使用的也是php手册里面的例子,在这里我把解释写在了代码的注释中了 <?php /* * 下面每一行是用分号分割的字段组合,第一个字段将被用作键名。...*/ //input变量 $input = <<<'EOF' 1;PHP;Likes dollar signs 2;Python;Likes whitespace 3;Ruby;Likes blocks

    66410

    pHP生成唯一单号

    这几天一直在写个人使用的用户中心,虽然期间遇到不少的问题,但还是一点点的都解决了,也从制作期间学到不少的知识,今天就说一说利用PHP生成订单单的方法。...而交易的依据就是订单号,当然我们要随机生成的订单号也不能相同的,下面提供了四种利用PHP生成订单号的方法。...第一种PHP生成唯一单号的方法 PHP代码 $str = date('Ymd') . str_pad(mt_rand(1, 99999), 5, '0', STR_PAD_LEFT); /**飞鸟慕鱼博客...*/ echo $str; 注:这种方式是利用当前的时间,加随机机补全的方法生成,当然我们可以把时间精确到秒级 第二种PHP生成唯一单号的方法 代码 $str = date('Ymd').substr...以上就有利用PHP生成唯一单号的方法,如果是不是很大型的电商网站,个人推荐使用第二种方法,快速高效。 如果你有,别的好的方法,可以在下方留言给我哦!

    1.7K20
    领券