微信红包算法设计-随机红包
'''
我考虑了一个简单的算法:
比如100元,由10个人分,那么平均一个人是10元钱。然后付款后,系统开始分份儿。
第一份:系统由0~10元之间随机一个数,作为这一份的钱数,设x1。
第二份:剩下的钱(100-x1),系统由0~(100-x1)/(10-1)随机一个数,作为这份的钱数,设x2
.。。。
第n份:剩下的钱(100-x1-x2-...-xn),系统由0~(100-x1-x2-...-xn-1)/(10-n)随机一个数,作为这个份的钱数,设为xn当用户进来拿红包的时候,系统由0~9之间随机一个数,随机到几,就取第几份红包,然后将这个数存到list里。当之后的用户抽到相同的随机数时,则将这个数+1,如遇相同再+1,直至list满,红包发完。
'''
import randomhistory_total_money,geted_persons,curr_money = 0,0,0
random_money_list = []
def random_red_envelopes(total_money,total_persons):global history_total_moneyglobal geted_personsglobal curr_moneyglobal random_money_listwhile geted_persons < total_persons and history_total_money < total_money:if geted_persons == 0:curr_money = round(random.uniform(0,total_money/total_persons),2)history_total_money += curr_moneyrandom_money_list.append(curr_money)elif geted_persons == total_persons-1:random_money_list.append(round(total_money - history_total_money))breakelse:curr_money = round(random.uniform(0,(total_money-history_total_money)/(total_persons-geted_persons)),2)history_total_money += curr_moneyrandom_money_list.append(curr_money)geted_persons += 1
random_red_envelopes(100,10)
print(random_money_list)
for i in range(10):j = random.randint(0,9-i)print(random_money_list.pop(j))
微信红包算法设计-随机红包相关推荐
- 红包算法关于---随机分发和平均分发
目录 群发普通红包 流程图 MainRedPacket类 Manager类 Member类 User类 群发普通红包 题目介绍 某软件有多名用户(User类),某群聊中有群主(Manager类)和多名 ...
- java 红包算法_JAVA实现拼手气红包算法
实现拼手气红包算法,有以下几个需要注意的地方: 抢红包的期望收益应与先后顺序无关 保证每个用户至少能抢到一个预设的最小金额,人民币红包设置的最小金额一般是0.01元,如果需要发其他货币类型的红包,比如 ...
- 拼手气红包java_JAVA实现拼手气红包算法
实现拼手气红包算法,有以下几个需要注意的地方: 抢红包的期望收益应与先后顺序无关 保证每个用户至少能抢到一个预设的最小金额,人民币红包设置的最小金额一般是0.01元,如果需要发其他货币类型的红包,比如 ...
- 简单的算法:红包算法
红包在中国传统有着悠久的历史,承载着长辈对晚辈的期许与祝福.微信红包功能上线后,红包不再局限于长辈与晚辈之间,也不再局限于过年这种特殊的时间背景.拼手气红包更是我们乐此不疲的功能.毕竟拼人品谁不爱呢. ...
- PHP实现微信随机红包算法和微信红包的架构设计简介
微信红包的架构设计简介: 原文:https://www.zybuluo.com/yulin718/note/93148 @来源于QCon某高可用架构群整理,整理朱玉华. 背景:有某个朋友在朋友圈咨询微 ...
- python模拟微信发红包算法_微信红包的随机算法是怎样实现的?
有人问过微信的人,大致是这样: 先上代码: public static double getRandomMoney(RedPackage _redPackage) { // remainSize 剩余 ...
- 设计发红包的API ( 微信红包的算法是怎样的?)
让你设计一个微信发红包的API,你会怎么设计,不能有人领到的红包里面没钱,红包数值精确到分. 我的想法: 如果是随机红包,根据发红包的人输入的钱数,默认精确到分,也就是0.01元. 最小的不可再分的单 ...
- 微信手气红包算法 php,微信随机生成红包金额算法php版
最近在研究发红包的功能,于是写了个红包的生成算法. 红包生成算法的需求预先生成所有的红包还是一个请求随机生成一个红包 简单来说,就是把一个大整数m分解(直接以"分为单位,如1元即100)分解 ...
- 随机红包 java_微信随机生成红包金额算法java版
最近几年玩得最疯狂的应该是发红包了,尤其是过年的时候特别受欢迎,下面写了红包的随机算法,其实挺简单的,仅是提供一种思路,希望可以给大家一些启发. public class WxAlgorithm{ / ...
最新文章
- Callable、Future阻塞队列阻塞栈
- 乔布斯的创业搭档:他缺乏工程师才能,不得不锻炼营销能力来弥补
- QT的第一个程序HELLO WORLD
- php 声明字符串的三种方式
- cookie+memcached实现单点登陆
- 计算机操作简介,什么是计算机操作的快捷键?计算机操作快捷方式简介
- python中的递归函数是什么_讲解Python中的递归函数
- OPC Client “failed to execute OPCENUM” 解决方法
- Hello Blog!
- java怎么连elk_从Java应用程序登录到ELK而无需解析日志
- linux libstdc 怎样升级,linux 更新libstdc++.so.6
- 泰安的雾霾确实有点大
- poj 1125 Floyd简单
- Python 追加 Excel 数据
- SAP销售开票同一客户实现不同统驭科目配置
- 移动的宽带特别不好用,非常卡,怎么回事?
- CVPR 2022: 图像分割论文大盘点
- CSS Display与Visibility区别和用法
- 什么是PHP正则表达式?PHP正则表达式的使用方法(附代码)
- “读心术”或将代替传统密码:EEG识别脑电波,以此来鉴别身份