好得很程序员自学网
  • 首页
  • 后端语言
    • C#
    • PHP
    • Python
    • java
    • Golang
    • ASP.NET
  • 前端开发
    • Angular
    • react框架
    • LayUi开发
    • javascript
    • HTML与HTML5
    • CSS与CSS3
    • jQuery
    • Bootstrap
    • NodeJS
    • Vue与小程序技术
    • Photoshop
  • 数据库技术
    • MSSQL
    • MYSQL
    • Redis
    • MongoDB
    • Oracle
    • PostgreSQL
    • Sqlite
    • 数据库基础
    • 数据库排错
  • CMS系统
    • HDHCMS
    • WordPress
    • Dedecms
    • PhpCms
    • 帝国CMS
    • ThinkPHP
    • Discuz
    • ZBlog
    • ECSHOP
  • 高手进阶
    • Android技术
    • 正则表达式
    • 数据结构与算法
  • 系统运维
    • Windows
    • apache
    • 服务器排错
    • 网站安全
    • nginx
    • linux系统
    • MacOS
  • 学习教程
    • 前端脚本教程
    • HTML与CSS 教程
    • 脚本语言教程
    • 数据库教程
    • 应用系统教程
  • 新技术
  • 编程导航
    • 区块链
    • IT资讯
    • 设计灵感
    • 建站资源
    • 开发团队
    • 程序社区
    • 图标图库
    • 图形动效
    • IDE环境
    • 在线工具
    • 调试测试
    • Node开发
    • 游戏框架
    • CSS库
    • Jquery插件
    • Js插件
    • Web框架
    • 移动端框架
    • 模块管理
    • 开发社区
    • 在线课堂
    • 框架类库
    • 项目托管
    • 云服务

当前位置:首页>后端语言>PHP
<tfoot draggable='sEl'></tfoot>

php抢红包算法 抢红包程序代码

很多站长朋友们都不太清楚php抢红包算法,今天小编就来给大家整理php抢红包算法,希望对各位有所帮助,具体内容如下:

本文目录一览: 1、 PHP微信红包拼手气算法与扫雷 2、 如何用php实现模拟微信抢红包 3、 怎么样通过微信随机生成红包金额算法php版 4、 抢红包算法(随机数) 5、 微信抢红包核心规则 6、 抢红包算法 PHP微信红包拼手气算法与扫雷

如下需求

需要将1元的红包,拆分成10个,每一个红包的金额均不相等,接受用户的输入 个数和金额,并且红包个数的最小金额,和最大金额不能大于输入金额。

由于微信红包的火热,一些红包爱好者就出现了红包扫雷的菠菜玩法,有群红包、H5游戏,可以是手气佳者、也可以是尾数符合者,玩法多种多样。

而一般脱离微信外的程序、游戏、网页、APP、都是差不多跟机器人在玩,前期让你赚钱,后期慢慢割你韭菜,和币圈合约是一个道理。

后期会持续更新和剖析扫雷红包机器人和其通过盈亏比例调节割韭菜等细节

如何用php实现模拟微信抢红包

小伙子你很有想法啊,可惜不行,因为php是服务端的,而微信是客户段的。除非微信红包开放接口

怎么样通过微信随机生成红包金额算法php版

php 有个函数叫 rand() 产生随机数,你去看看手册上的这个函数吧。

抢红包算法(随机数)

红包剩余金额为 M

红包剩余数量为 N

这种算法就是每次都在区间[0,M/N×2] 随机取一个数。假设100元红包发10个人,那么合理的做法应该是每个人领到10元的概率相同。

这样推导下去,每个人领到相同金额的概率应该就是相同的了。

第一次生成随机数: k1=(0,sum/n*2) (左开右开区间内的随机数)

第二次生成随机数:k2 = (0,(sum-k1)/(n-1)*2)

第三次生成随机数:k3 = (0,(sum-k1-k2)/(n-2)*2)

第N次生成随机数:kn = sum-k1-...-kn-1

这个算法可以把总金额想象成一条线段,每个人都有机会切一刀,前面的人切剩下的后面的人再接着切,这样越是前面的人截取的长度(理解成领取到的红包金额)越大的概率就越大。

微信抢红包核心规则

我们经常在微信群里抢手气红包,那么拼手气红包的主要规则是什么样子的呢?经过多方资料查阅,规则如下:

例如:发100块钱,总共10个红包,那么平均值是10块钱一个,那么发出来的红包的额度在0.01元~20元之间波动。

当前面3个红包总共被领了40块钱时,剩下60块钱,总共7个红包,那么这7个红包的额度在:0.01~(60/7*2)=17.14之间。

注意:这里的算法是每被抢一个后,剩下的会再次执行上面的这样的算法。

这样算下去,会超过最开始的全部金额,因此到了最后面如果不够这么算,那么会采取如下算法:保证剩余用户能拿到最低1分钱即可。

如果前面的人手气不好,那么后面的余额越多,红包额度也就越多,因此实际概率一样的。

抢红包算法

抢红包大家都知道,但发出一个固定金额的红包,由若干个人来抢,需要满足哪些规则?

下面实现了两种抢红包的方法:二倍均值法 和 线段切割法。

设剩余红包金额为M,剩余人数为N,那么有如下公式: 每次抢到的金额 = Random(0, M / N * 2) 。

这个公式,保证了每次随机金额的平均值是相等的,不会因为抢红包的先后顺序而造成不公平。

举个栗子:

假设有10个人,红包总额100元。

100 / 10 * 2 = 20,所以第一个人的随机范围是(0,20),平均可以抢到 10 元。假设第一个人随机到 10 元,那么剩余金额是100 - 10 = 90 元。

90 / 9 * 2 = 20,所以第二个人的随机范围同样是(0,20 ),平均可以抢到 10 元。假设第二个人随机到10元,那么剩余金额是90-10 = 80 元。

80/8X2 = 20, 所以第三个人的随机范围同样是(0,20 ),平均可以抢到10元。

以此类推,除了最后一次,每一次随机范围的均值是相等的。

何谓线段切割法?我们可以把红包总金额想象成一条很长的线段,而每个人抢到的金额,则是这条主线段所拆分出的若干子线段。

如何确定每一条子线段的长度呢?由“切割点”来决定。当 N 个人一起抢红包的时候,就需要确定 N-1 个切割点。因此,我们需要做 N-1 次随机运算,以此确定 N-1 个切割点。随机的范围区间是(1, M)。

当所有切割点确定以后,子线段的长度也随之确定。这样每个人来抢红包的时候,只需要顺次领取与子线段长度等价的红包金额即可。

这就是线段切割法的思路。在这里需要注意以下两点:

参考 《漫画:如何实现抢红包算法?》

关于php抢红包算法的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。

查看更多关于php抢红包算法 抢红包程序代码的详细内容...

声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did196660
更新时间:2023-04-26   阅读:54次

上一篇: php数组的第一个元素 php中数组元素是由什么和什么组成的

下一篇:php用户权限管理 php用户权限管理系统

最新资料更新

  • 1.php接收tcp数据 php tcp udp
  • 2.php圆形头像代码 php生成圆形图
  • 3.怎么写php需求 php市场需求
  • 4.php脚本在线解密 php解密网站程序源码
  • 5.php在线制作教程 用php技术做的作品
  • 6.php登录和注册 php登录和注册不使用数据库
  • 7.php编程实验总结 php简单实训项目
  • 8.输出图片php 输出图片英文
  • 9.php文件工具类 php文件处理
  • 10.php环境配置工具 phpstorm2021配置php环境
  • 11.php数据抓取实例 php采集数据
  • 12.php瀑布流响应 html 瀑布流
  • 13.php存储的知识 php会话保存数据的两种方式是
  • 14.jq调用php数据 php100 jquery教程
  • 15.包含tracphp的词条
  • 16.php网站+iis php网站有哪些
  • 17.有没有php扩展 php扩展怎么安装
  • 18.php框架开发教程 php系统开发框架
  • 19.图片二进制php 图片二进制转换器
  • 20.csrfphp防的简单介绍

CopyRight:2016-2025好得很程序员自学网 备案ICP:湘ICP备09009000号-16 http://www.haodehen.cn
本站资讯不构成任何建议,仅限于个人分享,参考须谨慎!
本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。

网站内容来源于网络分享,如有侵权发邮箱到:kenbest@126.com,收到邮件我们会即时下线处理。
网站框架支持:HDHCMS   51LA统计 百度统计
Copyright © 2018-2025 「好得很程序员自学网」
[ SiteMap ]