鱼C论坛

 找回密码
 立即注册
查看: 4266|回复: 7

[作品展示] 思考一个小问题:微信群抢红包

[复制链接]
发表于 2018-1-16 20:32:44 From FishC Mobile | 显示全部楼层
本帖最后由 shigure_takimi 于 2018-1-17 08:19 编辑
  1. import random

  2. def divide(total = 10000, person = 10, n = 100000):
  3.         get = [0 for i in range(person)]
  4.         for j in range(n):
  5.                 amount = total
  6.                 for i in range(0, person-1):
  7.                         x = 2 * amount // (person - i)
  8.                         a = random.randint(1, x)
  9.                         get[i] += a
  10.                         amount -= a
  11.                 get[person-1] += amount
  12.         return [i//n for i in get]

  13. print(1, divide(n=1))
  14. print(2, divide(n=1))
  15. print('First 100,000 times simulation:',divide())
  16. print('Second 100,000 times simulation:',divide())

  17. #   输出:
  18. #  (1, [205, 593, 974, 69, 561, 696, 2725, 2736, 581, 860])
  19. #  (2, [157, 766, 894, 280, 1008, 2585, 1453, 90, 2353, 414])
  20. #  ('First 100,000 times simulation:', [998, 998, 1002, 1000, 1002, 1003, 998, 998, 999, 998])
  21. #  ('Second 100,000 times simulation:', [997, 1002, 1004, 997, 1000, 999, 997, 998, 1003, 998])
  22. #  可见单独一次来看,每个人抽到的金额差别比较大;但总体来看,先抽后抽没有差别。
复制代码

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-9-23 02:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表