首页
学习
活动
专区
圈层
工具
发布

算法思考:红包金额生成

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

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

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

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

    1.3K20

    如何生成微信红包金额?

    一些前提解释 我要讨论的红包是:微信拼手气红包。 拼手机红包的一些的限制条件如下: – 每个红包最小为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

    4.4K80

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

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

    1.3K10

    PHP生成图表pChart

    pChart是一个开源的图表生成库,主要涉及3个Class:pChart.class, pData.class, pCache.class,可生成20多种简单或复杂的图表,支持PNG,JPG,GIF通用图片格式...使用该程序PHP需要开启GD服务,先来看看pChart的工作流程:主要分为三步:* 读取用于生成图表数据(数据库、文件)* 设计图表样式(圆角、底色等)* 制作标签、题目、图例并生成图表下面看一个简单的柱状图表...php // Standard inclusions include("pChart/pData.class"); include("pChart/pChart.class"); // Dataset...Test->setFontProperties("Fonts/MankSans.ttf",10); $Test->drawTitle(50,22,"Example",50,50,50,585); //生成图表...php // Standard inclusions include("pChart/pData.class"); include("pChart/pChart.class"); // Dataset

    18010

    教你用 AI 免费生成「微信动态红包封面」

    这次打算用 AI 白嫖做一套动态红包封面:用 ComfyUI + 腾讯开源 Hunyuan Video 生成短视频,再按微信规范导出上传——零代码、零门槛、全本地。...总览:方案与材料 生成框架:ComfyUI(本地可视化工作流) 视频模型:Hunyuan Video(腾讯开源,效果靠谱) 工作流:官方示例 JSON 一键导入 目标成片:竖版 9:16/3:4...(yjpoo.com) 4)实际生成效果示意 三、导出与「微信红包封面」规范对齐 平台规范每年可能小幅更新,以开放平台最新模板与页面为准。上传前,务必先到开放平台领取最新设计模板与规范说明。...light sweep, loop-friendly motion, clean composition, 1–3 seconds, high clarity, illustration style” 生成后...结语这套「ComfyUI + Hunyuan Video」链路,免费、可复用、可本地落地,非常适合春节做品牌感、氛围感的动态红包封面。

    2.2K20

    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

    1.2K10
    领券