偏爱小仙女 发表于 2021-4-25 19:03:59

请教在调用随机模块如何能够让数据添加到多个列表至少大于N个数据

'''
8位老师,3个办公室,随机分配8位老师到3个办公室
1.需要有8位老师的数据
2.验证办公室数据

3.每个办公室最起码要一人 ##求思路这个地方该怎么写,谢谢指点
'''
import random
teachers =['A','B','C','D','E','F','G','H'] #八位老师
offices =[[],[],[]] #三间教室
for teacher in teachers:    #先遍历老师的名字
    num = random.randint(0,2)   #随机分配3间教室
    offices.append(teacher)    #把老师随机添加到三间教室
i = 1   #办公室的序号
for office in offices:#把每个办公室的老师遍历出来
    print(f'办公室的人数是{len(office)},老师分别是:')
    for tea in office:#把每间办公室的名字打印出来
      print(tea)
    i += 1

求助,如何实现第3步骤,就是保证分配到每个办公室的人数至少是一人
求助,如何实现第3步骤,就是保证分配到每个办公室的人数至少是一人
求助,如何实现第3步骤,就是保证分配到每个办公室的人数至少是一人

笨鸟学飞 发表于 2021-4-26 15:48:43

import random


def group():# 分组
    offices = office1, office2, office3 = [], [], []
    for i in range(1,9):
      random.choice(offices).append(i)
    return offices

def check(offices):# 验证
    for each in offices:
      print(len(each))
      if len(each) == 0:
            return True
    return False

while True:
    offices = group()
    if check(offices):
      continue
    else:
      break
print(offices)

阿奇_o 发表于 2021-4-26 18:31:40

OMG。。审错题。。我以为要求所有可能的分配方案。。{:10_247:}

qq1151985918 发表于 2021-4-26 19:07:47

你可以将随机3个分别分配到3个房间,剩下5位老师再随机分配

偏爱小仙女 发表于 2021-4-27 19:11:39

qq1151985918 发表于 2021-4-26 19:07
你可以将随机3个分别分配到3个房间,剩下5位老师再随机分配

这这这还是有点难度啊{:5_96:}

qq1151985918 发表于 2021-4-27 19:39:42

偏爱小仙女 发表于 2021-4-27 19:11
这这这还是有点难度啊

这有难度吗?很简单吧?

qq1151985918 发表于 2021-4-27 19:49:19

偏爱小仙女 发表于 2021-4-27 19:11
这这这还是有点难度啊

'''
8位老师,3个办公室,随机分配8位老师到3个办公室
1.需要有8位老师的数据
2.验证办公室数据

3.每个办公室最起码要一人 ##求思路这个地方该怎么写,谢谢指点
'''
import random
teachers =['A','B','C','D','E','F','G','H'] #八位老师
offices =[[],[],[]] #三间教室

rand_teachers = random.sample(teachers,8) #将老师顺序随机打乱

for office,teacher in zip(offices,rand_teachers[:3]):
    office.append(teacher)
    # 现将打乱顺序的前三名老师分别分配到三个房间,一间一人
   
for teacher in rand_teachers:    #先遍历老师的名字(后五位老师)
    num = random.randint(0,2)   #随机分配3间教室
    offices.append(teacher)

i = 1   #办公室的序号
for office in offices:#把每个办公室的老师遍历出来
    print(f'办公室的人数是{len(office)},老师分别是:')
    for tea in office:#把每间办公室的名字打印出来
      print(tea)
    i += 1

偏爱小仙女 发表于 2021-4-28 01:26:15

qq1151985918 发表于 2021-4-27 19:49


大佬大佬,膜拜了,确实是好思路啊
页: [1]
查看完整版本: 请教在调用随机模块如何能够让数据添加到多个列表至少大于N个数据