Python初学者的一点疑问?
发布网友
发布时间:2022-04-27 08:37
我来回答
共3个回答
热心网友
时间:2022-04-07 13:32
可以
不是递归, 递归是一个功能的自我调用. 这里也不需要递归.
你可以使用更简单的方法. 先把列表打乱(使用shuffle函数), 然后在一排人中随机插两个不同的隔板进去, 就相当于把人分成了三组. 这样实现简单, 并且不会产生空的现象.
热心网友
时间:2022-04-07 14:50
1,你的循环是可以正常分配,只是有可能会耗费较多运算时间,因为有可能多次喷到有办公室分配为0的情况。
2、这个不是递归,只是循环,递归是函数调用函数本身。
我觉得,平均分配可能更合理一些
热心网友
时间:2022-04-07 16:24
你这是个算法问题 讨论具体代码前我觉得应该先明确算法
我给你个算法你看如何,用python自带的随机选取函数,
先把老师列表随机乱序(洗牌)
再确定3个组的数量,再用list切片选指定数量的老师,代码如下
teachers = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H']
random.shuffle(teachers)
n1 = random.randint(1, 6)
n2 = random.randint(1, 7 - n1)
n3 = 8 - n1 - n2
print(n1, n2, n3)
offices = []
l1 = teachers[0:n1]
offices.append(l1)
l2 = teachers[n1:n1 + n2]
offices.append(l2)
l3 = teachers[n1 + n2:]
offices.append(l3)
print(offices)