100元随机分给10个人 最多20 最少0.01
2017-08-11 16:05
441 查看
# encoding:utf-8 import random "将问题分解成两步:先生成10个随机红包,再随机发给10个人的问题。这样算法就集中在第一步上。" "每生成一个红包,计算剩余金额给剩下的人发,最多能发多少,如果大于12以12算,最少能发多少;如果小于6以6计算。生成一个最大于最小之间的随机数。最后一个人的红包则是总额的余额。" # random.uniform(a, b),用于生成一个指定范围内的随机符点数,两个参数其中一个是上限,一个是下限 def share_money(total, count, max_money, min_money): array = [] total_rest = total for i in range(1, count):
# 如果剩下的都是最小值,则此次随机最大的数 new_max = min(total_rest - (count - i) * min_money, max_money)
# 如果剩下的都是最大值,则此次随机最小的数new_min = max(total_rest - (count - i) * max_money, min_money)
# 我们每次产生的数介于这两个数之间money = round(random.uniform(new_min, new_max), 2) total_rest -= money array.append(money) array.append(round(total_rest,2)) print(array)if __name__ == '__main__': share_money(100,10,20,0.01)
相关文章推荐
- 面试问题:发一个随机红包,100块钱给10个人。每个人最多12块钱,最少6块钱。怎么分?
- 面试问题:发一个随机红包,100块钱给10个人。每个人最多12块钱,最少6块钱。怎么分?
- 发一个随机红包 100块钱给10个人 每个人最多12块钱 最少6块钱 怎么分
- 面试问题:发一个随机红包,100块钱给10个人。每个人最多12块钱,最少6块钱。怎么分?
- 发一个随机红包,100块钱给10个人。每个人最多12块钱,最少6块钱。怎么分?
- 面试问题:发一个随机红包,100块钱给10个人。每个人最多12块钱,最少6块钱。怎么分?
- 随机生成长度为100的数组,数组元素为1到10,统计出现次数最多和最少的元素
- 随机生成长度为100的数组,数组元素为1到10,统计出现次数最多和最少的元素
- 用javascript写一个:发一个随机红包,40块钱给10个人。每个人最多6块钱。
- 商业研究(20):滴滴出行,进军海外包车?与OTA携程和包车创业公司,共演“三国杀”?看看分析师、投资人和权威人士等10个人的观点碰撞
- 40元红包发10个人,每个人最多发6块解决方案。
- 随机生成50个数,范围在【10,50】,统计每个数字出现的次数以及出现次数最多的数字与它的个数。
- 编写多线程程序,模拟多个人通过一个山洞。这个山洞每次只能通过一个人,每个人通过山洞的时间为2秒(sleep)。随机生成10个人,都要通过此山洞,用随机值对应的字符串表示人名,打印输出每次
- spark core之java和scala版本——电影受众分析系统--得分最高的10部电影;看过电影最多的前10个人
- 编写多线程程序,模拟多个人通过一个山洞。这个山洞每次只能通过一个人,每个人通过山洞的时间为2秒(sleep)。随机生成10个人,都要通过此山洞,用随机值对应的字符串表示人名,打印输出每次通过山洞的人名
- 随机产生 20 个[10 , 100]的正整数,输出这些数以及他们中的最大数
- 随机产生20个数(10以内的)放入arraylist中
- spark sql之java和scala版本——电影受众分析系统--得分最高的10部电影;看过电影最多的前10个人
- 随机产生50个整数,位于[10,50],统计每个数字出现的次数以及出现次数最多的数字与出现次数并打印.如果出现次数为0不打印,打印时要求升序
- 【小程序】JAVA实现从10~50中随机生成50个数,统计出现的数字及次数,输出出现最多的次数及对应的数字,按数字升序排列。