每天开心一点

Python:每日一题 96

2017-11-27 14:51:00    六月    650    来源: http://bbs.fishc.com/thread-96071-1-1.html

我们都知道微信红包,把一个红包随机分成n份,每人拿到的钱数不尽相同。
现在模拟这个算法,把100块钱,随机分成10份,为了简化每个人的钱数都是整数。
例如:
  1. 7
  2. 1
  3. 9
  4. 11
  5. 3
  6. 13
  7. 10
  8. 11
  9. 2
  10. 9
  11. 24
复制代码


我的解法:

您是VIP用户,您可免回复查看本帖隐藏的内容

  1. import random
  2. total = 100
  3. person = 10
  4. ran = []
  5. while len(ran) < 10:
  6.     r = random.randint(1, 99)
  7.     if r not in ran:
  8.         ran.append(r)
  9. ran.sort()
  10. ran = [0] + ran + [100]
  11. for i in range(len(ran) - 1):
  12.     print(ran[i + 1] - ran[i])
复制代码


把0~100想象为一个数轴,在这条线上随机设九个分隔点,就可分为10个随机数,并且和为100