Python版微信红包分配算法

 更新时间:2015年05月04日 16:58:59   投稿:hebedich  
微信红包告诉你,学好数学,真的可以多抢红包!!下面就和大家分享一下抢红包的秘籍,简单概括就是:让朋友先上!

红包分配算法代码实现发给大家,祝红包大丰收!

#coding=gbk
import random
import sys

#print random.randint(0, 99)

#print "====", random.uniform(0, 0.99)

def calRandomValue(min, max, total, num):
print min, max, total, num
total = float(total)
num = int(num)
min = 0.01
if(num return
if num == 1:
print "第%d个人拿到红包数为:%.2f" %(num, total)
return

i = 1
total_money = total

#rtotal = (total*100 - min*num*100)/100
while( i max = total_money - min*(num- i)
k = int((num-i)/2)
if num -i k = num -i
max = max/k
monney = random.randint(int(min*100), int(max*100))
monney = float(monney)/100
total_money = total_money - monney

print "第%d个人拿到红包数为:%.2f, 余额为: %.2f" %(i, monney, total_money)
i += 1

print "第%d个人拿到红包数为:%.2f, 余额为: %.2f" %(i, total_money, 0.0)

if __name__ == "__main__":
min = sys.argv[1]
max = sys.argv[2]
total = sys.argv[3]
num = sys.argv[4]
calRandomValue(min, max, total, num)

python 2.py 0.01 10 20 30
0.01 10 20 30
第1个人拿到红包数为:1.34, 余额为: 18.66
第2个人拿到红包数为:1.06, 余额为: 17.60
第3个人拿到红包数为:1.08, 余额为: 16.52
第4个人拿到红包数为:0.98, 余额为: 15.54
第5个人拿到红包数为:0.88, 余额为: 14.66
第6个人拿到红包数为:0.48, 余额为: 14.18
第7个人拿到红包数为:0.26, 余额为: 13.92
第8个人拿到红包数为:0.90, 余额为: 13.02
第9个人拿到红包数为:0.12, 余额为: 12.90
第10个人拿到红包数为:0.41, 余额为: 12.49
第11个人拿到红包数为:0.43, 余额为: 12.06
第12个人拿到红包数为:0.63, 余额为: 11.43
第13个人拿到红包数为:0.36, 余额为: 11.07
第14个人拿到红包数为:0.25, 余额为: 10.82
第15个人拿到红包数为:1.38, 余额为: 9.44
第16个人拿到红包数为:0.17, 余额为: 9.27
第17个人拿到红包数为:0.79, 余额为: 8.48
第18个人拿到红包数为:0.52, 余额为: 7.96
第19个人拿到红包数为:0.44, 余额为: 7.52
第20个人拿到红包数为:1.15, 余额为: 6.37
第21个人拿到红包数为:0.13, 余额为: 6.24
第22个人拿到红包数为:0.76, 余额为: 5.48
第23个人拿到红包数为:1.32, 余额为: 4.16
第24个人拿到红包数为:0.80, 余额为: 3.36
第25个人拿到红包数为:0.16, 余额为: 3.20
第26个人拿到红包数为:0.27, 余额为: 2.93
第27个人拿到红包数为:1.82, 余额为: 1.11
第28个人拿到红包数为:0.45, 余额为: 0.66
第29个人拿到红包数为:0.27, 余额为: 0.39
第30个人拿到红包数为:0.39, 余额为: 0.00

以上所述就是本文的全部内容了,希望大家能够喜欢。

相关文章

  • Python绘图系统之自定义一个坐标列表控件

    Python绘图系统之自定义一个坐标列表控件

    这篇文章主要为大家详细介绍了Python如何编写一个绘图系统,可以实现自定义一个坐标列表控件,文中的示例代码讲解详细,感兴趣的可以了解一下
    2023-08-08
  • 基于Python实现快递信息提取

    基于Python实现快递信息提取

    这篇文章主要为大家介绍了如何利用Python实现提取快递信息,文中的示例代码讲解详细,对我们学习Python有一定帮助,需要的可以参考一下
    2022-03-03
  • Python Pandas多种添加行列数据方法总结

    Python Pandas多种添加行列数据方法总结

    在进行数据分析时经常需要按照一定条件创建新的数据列,然后进行进一步分析,下面这篇文章主要给大家介绍了关于Python Pandas多种添加行列数据方法的相关资料,需要的朋友可以参考下
    2022-07-07
  • python 自定义装饰器实例详解

    python 自定义装饰器实例详解

    这篇文章主要介绍了python 自定义装饰器,结合实例形式分析了Python自定义装饰器的功能、原理、用法及相关操作注意事项,需要的朋友可以参考下
    2019-07-07
  • Python中的super()方法使用简介

    Python中的super()方法使用简介

    这篇文章主要介绍了Python中的super()方法的使用,是Python入门学习中的基础知识,需要的朋友可以参考下
    2015-08-08
  • 零基础小白多久能学会python

    零基础小白多久能学会python

    在本篇文章里小编给大家分享的是一篇关于零基础学python要多久的相关文章内容,有兴趣的朋友们可以跟着学习下。
    2020-06-06
  • Python的输出格式化和进制转换介绍

    Python的输出格式化和进制转换介绍

    大家好,本篇文章主要讲的是Python的输出格式化和进制转换介绍,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-01-01
  • Django实现从数据库中获取到的数据转换为dict

    Django实现从数据库中获取到的数据转换为dict

    这篇文章主要介绍了Django实现从数据库中获取到的数据转换为dict,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • pycharm 实现显示project 选项卡的方法

    pycharm 实现显示project 选项卡的方法

    今天小编就为大家分享一篇pycharm 实现显示project 选项卡的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • Python各种类型装饰器详细介绍

    Python各种类型装饰器详细介绍

    大家好,本篇文章主要讲的是Python各种类型装饰器详细介绍,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12

最新评论