抢红包

微信发红包-测试用例

本小妞迷上赌 提交于 2020-03-26 23:46:26
功能 1.在红包钱数,和红包个数的输入框中只能输入数字 2.红包里最多和最少可以输入的钱数 200 0.01 3.拼手气红包最多可以发多少个红包 100 3.1超过最大拼手气红包的个数是否有提醒 4.当红包钱数超过最大范围是不是有对应的提示 5.当发送的红包个数超过最大范围是不是有提示 6.当余额不足时,红包发送失败 7.在红包描述里是否可以输入汉字,英文,符号,表情,纯数字,汉字英语符号, 7.1是否可以输入它们的混合搭配 8.输入红包钱数是不是只能输入数字 9.红包描述里许多能有多少个字符 10个 10.红包描述,金额,红包个数框里是否支持复制粘贴操作 12.红包描述里的表情可以删除 13.发送的红包别人是否可以领取 13.1发的红包自己可不可以领取 2人 14. 24小时内没有领取的红包是否可以退回到原来的账户 14.1 超过24小时没有领取的红包,是否还可以领取 15.用户是否可以多次抢一个红包 16.发红包的人是否还可以抢红包 多人 17.红包的金额里的小数位数是否有限制 18.可以按返回键,取消发红包 19. 断网时,无法抢红包 20.可不可以自己选择支付方式 21.余额不足时,会不会自动匹配支付方式 22.在发红包界面能否看到以前的收发红包的记录 23.红包记录里的信息与实际收发红包记录是否匹配 24.支付时可以密码支付也可以指纹支付 25.如果直接输入小数点

微信抢红包外挂

时光怂恿深爱的人放手 提交于 2020-03-01 08:34:51
源码下载地址: https://github.com/lendylongli/qianghongbao apk下载地址 : 百度云下载 http://pan.baidu.com/s/1qWBZwUK 前言 Codeboy微信抢红包是我在2015年春节过年期间编写的一个开源的兴趣项目,只要是将整个核心抢红包的流程编写出来,至于再复杂的一些操作就没深入研究。当这个项目发布后,也是反应挺大的,很多网友也找到我了与交流,也有做淘宝的人给钱让我去增加一些功能,当然我是拒绝的。 作者声明 在这里,我声明一下,我所做的是自己有兴趣的事情,只是通过开源的方式让大家去学习相关技术,并不是为了营利,而我也知道淘宝上有人直接拿我的应用去售卖,这些都是没经过我的允许,我也没有半点收益,我留下联系方式是为了方便开发者之间的讨论与学习,所以请商业合作的与小白不要加我QQ,谢谢。 技术详述 一开始大家都会觉得做一个Android外挂会汲取很多东西或者底层的东西,但当发现Android里有一个叫 AccessibilityService 的服务时,一切都变得很简单。 关于AccessibilityService 先看看官网的介绍Accessibility Many Android users have different abilities that require them to interact with

Java模拟抢红包算法

杀马特。学长 韩版系。学妹 提交于 2020-02-27 15:34:17
Java模拟抢红包算法 春节闲着无聊,来模拟一下抢红包算法。首先要确定抢红包的规则: 1:每个人都能抢到,且至少是1分钱。 2:所有的钱必须全部分完,所有人抢到的钱等于总金额。 3:每个人抢到的钱概率是相同的(不能先抢的就抢的多)。 代码: import java . util . ArrayList ; import java . util . List ; import java . util . Random ; import java . util . Scanner ; /** * @author wk * @date 2020/2/4 10:03 * 规则: * * 1.所有人抢到金额之和等于红包金额,不能超过,也不能少于。 * * 2.每个人至少抢到一分钱。 * * 3.要保证所有人抢到金额的几率相等。 */ public class LuckDraw { /** *红包金额(单位:元) */ private static double money ; /** * 红包金额(单位:分) */ private static int moneyFen ; /** * 人数 * @param args */ private static int peopleNum ; /** * 存放金额 * @param args */ private static List <

【转】抢红包算法

≯℡__Kan透↙ 提交于 2020-02-07 00:09:46
发出一个固定金额的红包,由若干个人来抢,需要满足哪些规则? 1. 所有人抢到金额之和等于红包金额,不能超过,也不能少于。 2. 每个人至少抢到一分钱。 3. 要保证所有人抢到金额的几率相等。 小灰的思路是什么样呢? 每次抢到的金额 = 随机区间 ( 0, 剩余金额 ) 为什么这么说呢?让我们看一个栗子: 假设有 10 个人,红包总额 100 元。 第一个人的随机范围是 ( 0 , 100 元 ) ,平均可以抢到 50 元 。 假设第一个人随机到 50 元,那么剩余金额是 100-50 = 50 元。 第二个人的随机范围是 ( 0 , 50 元) ,平均可以抢到 25 元 。 假设第二个人随机到 25 元,那么剩余金额是 50-25 = 25 元。 第三个人的随机范围是 ( 0 , 25 元) ,平均可以抢到 12.5 元 。 以此类推,每一次随机范围越来越小。 方法 1 :二倍均值法 剩余红包金额为 M ,剩余人数为 N ,那么有如下公式: 每次抢到的金额 = 随机区间 ( 0 , M / N X 2 ) 这个公式,保证了 每次随机金额的平均值是相等的 ,不会因为抢红包的先后顺序而造成不公平。 举个栗子: 假设有 10 个人,红包总额 100 元。 100/10X2 = 20, 所以第一个人的随机范围是 ( 0 , 20 ) ,平均可以抢到 10 元 。 假设第一个人随机到 10

马云发6亿马化腾发35亿!支付宝和微信都要撒红包了!怎么抢?戳这里!

陌路散爱 提交于 2020-02-04 22:37:25
本文来自冯程微信公众 :春节越来越近,支付宝钱包与微信的红包大战也更加紧张刺激。继红包分享功能被微信封杀、支付宝钱包随机应变推出红包口令之后,2月9日,支付宝钱包再放一个大招,宣布从小年夜(2月11日)到正月初一(2月19日),与品牌商户一起向用户发放约6亿元的红包。其中,现金超过1.56亿元,购物消费红包约4.3亿元。 没有任何附加条件,所有人在手机上打开最新版支付宝钱包(8.5版本),均可参与抢红包活动。 用户抢到的现金红包,将直接进入用户的支付宝账户余额,与一般的支付宝资金一样,可以在所有支持支付宝消费的地方使用,也能支持提现到银行卡。用户抢到的商户优惠券红包,比如快的打车红包,在相应的商户消费时可以使用,相关红包信息可以在“红包消息”或者“探索-红包”页面查询。 用户只需要在手机上打开支付宝钱包(8.5版本及以上),即可参与抢红包的活动。根据规则,抢红包在上述14个整点开始,每次持续半个小时。同一用户在每一个时间段只能参与一次,同一支付宝账户、银行卡、身份证、手机号及同一部手机均视为同一用户。 支付宝放大招,微信自然不会坐以待毙。昨天下午,微信宣布2015春节期间,微信将联合各类商家推出春节“摇红包“活动,将送出金额超过5亿的现金红包(单个最大红包为4999元),以及超过30亿卡券红包。 据了解,微信首轮春节”摇红包“活动将于2月12日晚上正式开启

【PTA】抢红包

[亡魂溺海] 提交于 2020-01-31 04:52:34
题目重述 没有人没抢过红包吧…… 这里给出N个人之间互相发红包、抢红包的记录,请你统计一下他们抢红包的收获。 输入格式: 输入第一行给出一个正整数N(≤10 ​4 ​​ ),即参与发红包和抢红包的总人数,则这些人从1到N编号。随后N行,第i行给出编号为i的人发红包的记录,格式如下: K N​ 1 ​​ P​ 1 ​​ ⋯ N​K​​ P​K 其中K(0≤K≤20)是发出去的红包个数,N​i​​ 是抢到红包的人的编号,P​i(>0)是其抢到的红包金额(以分为单位)。注意:对于同一个人发出的红包, 每人最多只能抢1次,不能重复抢。 输出格式: 按照收入金额从高到低的递减顺序输出每个人的编号和收入金额(以元为单位,输出小数点后2位)。每个人的信息占一行,两数字间有1个空格。如果收入金额有并列,则按抢到红包的个数递减输出;如果还有并列,则按个人编号递增输出。 输入样例: 10 3 2 22 10 58 8 125 5 1 345 3 211 5 233 7 13 8 101 1 7 8800 2 1 1000 2 1000 2 4 250 10 320 6 5 11 9 22 8 33 7 44 10 55 4 2 1 3 8800 2 1 23 2 123 1 8 250 4 2 121 4 516 7 112 9 10 输出样例: 1 11.63 2 3.63 8 3.63 3 2

Python 抢红包算法模拟

谁都会走 提交于 2020-01-30 03:49:53
抢红包算法模拟 本篇内容为抢随机红包模拟算法,仅供参考。 方法 本篇使用的是 二倍均值法 ,在此之前,先大概讲下普通随机法。 普通随机方法 该方法的原理是:每次都以 [最小值,剩余金额值] 之间进行随机取值。 假设红包金额为 88.88 ,红包数量为 8 个,那么第一个人领取金额将从 [0.01, 88.88] 之间进行取值,假设取值为 20.20 ,那么剩余的金额为 68.68 。 第二个领取金额将从 [0,01, 68.68] 之间进行取值,以此类推… 这里可以明显看出此方法的弊端,前面领取红包的金额区间更大,也就更容易获取更大的红包金额。下面看 二倍均值法 的原理。 二倍均值法 方法实现的原理是:每次以 [最小值,红包剩余金额 / 人数 * 2] 的区间进行取值。 假设红包金额为 88.88 ,红包数量为 8 个,理想情况下,方法的实现效果: 第一个人领取红包金额区间为 [0.01, 88.88 / 8 * 2] ,即是 [0.01, 22.22] 之间随机获取金额数。假设取平均值 11.11 ,则剩余金额 77.77 ; 第二个人领取红包金额区间为 [0.01, 77.77 / 7 * 2] ,即是 [0.01, 22.22] 之间随机获取金额数。假设取平均值 11.11 ,则剩余金额 66.66 ; 以此类推… 该方法也不是完美的,上述是非常理想情况下红包的领取金额

红包算法思考和总结 -- by jason.zhi

≯℡__Kan透↙ 提交于 2020-01-18 03:21:15
参考: http://mp.weixin.qq.com/s?__biz=MzI2NjA3NTc4Ng==&mid=402360599&idx=1&sn=69318b235e0e8b402d6fc566a3355af4&scene=0#wechat_redirect 进入知乎《微信红包的随机算法是怎样实现的》查看更多人的算法。 最近看到抢红包这么火,早就想尝试去把抢红包的功能试着去做一做了。刚好今天看到参考的网址,就产生了这一篇总结性的文章了。 我的早期逻辑猜想? 发红包者在发红包的时候,内存中存放的是红包的总额和红包的个数。然后在用户点击“拆红包”的时候,向服务器接口请求,服务器逻辑给用户计算出一个随机值(红包多少钱?),返回给前端。依次类推。 每次计算随机值时,都是用剩余的钱数除剩余拆红包的人,得出一个平均值,利用这个平均值去平衡每一个抢红包的用户得到的钱。 并没有第三,谢谢。 不过,看完参考的文章,思路还是有一定的改进的。在每个用户点击”拆红包”的时候,并没有像我想象中的那样去计算用户获得多少钱的红包,而是在发红包的时候(就是输入总额和红包个数,付款后并提交到服务器的时候),服务器就已经计算出每个红包的额度并存放到内存中了。那么当每个用户点击”拆红包”的时候,服务器直接就把”结果”(红包的数值)给前端就完成了一次领红包的操作了。从性能上看,这种方法明显优于我之前的想法,但是

Java实现抢红包功能

╄→гoц情女王★ 提交于 2019-12-09 14:17:45
采用多线程模拟多人同时抢红包。服务端将玩家发出的红包保存在一个队列里,然后用Job定时将红包信息推送给玩家。每一批玩家的抢红包请求,其实操作的都是从队列中弹出的第一个红包元素,但当前的红包数量为空的时候,自动弹出下一个红包(如果有的话)。 关键思想: 1.抢红包涉及多人并发操作,需要做好同步保证多线程运行结果正确。 2.由于同时在线人数大,从性能方面考虑,玩家的发红包请求不必及时响应,而由服务端定时执行发红包队列。 下面是主要的代码和实现逻辑说明 1.创建一个类,表示红包这个实体概念。直接采用原子变量保证增减同步。Java的原子变量是一种精度更细的同步机制,在高度竞争的情况下,锁的性能将超过原子变量的性能,但在更真实的竞争情况,原子变量享有更好的性能。 public class SpringGift { private String role; private AtomicInteger gift; public String getRole() { return role; } public void setRole(String role) { this.role = role; } public AtomicInteger getGift() { return gift; } public void setGift(AtomicInteger gift) { this

微信红包的设计实现

梦想的初衷 提交于 2019-12-09 12:12:37
红包功能的设计实现是一个很有趣的话题,主要的功能是P个人抢总金额M的N个红包,满足先抢的N个人能抢到红包。如果这是一个leetcode的算法题目难度应该是easy,只要保证Ni抢到的金额区间在[0.01,2倍剩余金额平均值)就能ac。 将算法带入到真实的工程实现,问题就要复杂得多,如果达到微信的量级,明显要考虑的有以下几点。 拆红包 高并发读 并发写 网络流量峰值 对账 降级 故障恢复 拆红包 拆红包有预拆包和实时拆包2种策略 预拆包策略 预拆包的策略在发红包时将金额M的红包拆分成N份,将分配好的结果放入内存队列或者cache,通过incr操作在用户抢红包时分配预算好的红包slot,预算的策略可以避免对共享资源的操作,减少了锁竞争,服务本身是无状态的,设计和实现相对简单,伸缩性较好。劣势是需要额外的存储空间,如果存在大量活跃红包或者红包份数很多时会增加成本。 实时拆包 实时拆包的策略在用户抢红包时实时拆包计算金额,这样只需要保存剩余红包数量和金额,不需要额外保存每个预拆包的红包金额。使用预拆包的策略会面临并发写的问题,如果多个拆红包的请求同时执行会导致数据不一致引起超发的问题,可以使用CAS操作实现乐观锁保证并发拆包不会出现问题。 高并发读 应对高并发读的通常思路是业务层拦截过滤无效请求,使用有效的缓存。可以使用Cache层decr功能记录请求红包的用户数