python 一个随机数字(比如800)如何随机放入一个长度为60的数组

发布于 2022-09-11 18:37:10 字数 226 浏览 11 评论 0

题目来源及自己的思路

给出一个数字
比如有苹果800个,现在有学生60人,现在随机分配苹果到60人手上,

相要的结果

结果一:有可能会是1号学生分到的是10个,2号分到的是4个。。。每个人都可以分到

另一种相要的结果

结果二:有可能会是1号学生分到的是10个,2号分到的是4个,3号分到是0个。。。 这里不一定没个人都分到,但是大部分的人可分到

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

太阳哥哥 2022-09-18 18:37:14
import random


def assign_apple(apple_num=800, student_num=60, both_have=False):
    '''使用分割法随机'''
    if both_have:
        start, end  = 1, apple_num
    else:
        start, end = 0, apple_num + 1
    seeds = list(range(start, end))
    # 随机分割位置
    idx = []
    for _ in range(student_num - 1):
        i = random.choices(seeds)[0]
        idx.append(i)
        if both_have:
            seeds.remove(i)
    # 填充边界并计算分配数组
    idx.sort()
    idx = [0] + idx + [apple_num]
    rst = [idx[j+1]-idx[j] for j in range(len(idx)-1)]

    return rst
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文