Jelly4869 发表于 2020-4-16 18:10:20

应该是分组问题

将10位老师(编号1、2,.......10)随机分配到4间办公室,且要求每间办公室至少包含2位老师,并统计分配所用的次数。输出每间办公室所分配的老师及分配所用的次数
(求助这个要怎么写啊。。实在是没有头绪了。。)

_2_ 发表于 2020-4-16 18:51:51

def assignment(teacher: int, office: int, minAssignment: int) -> int:
   result = 0
   div = int(teacher // minAssignment)
   result += div
   if teacher - div:
       result += 1
       return result
   return result

Jelly4869 发表于 2020-4-16 19:30:50

_2_ 发表于 2020-4-16 18:51


emmmm谢谢啦....不过这个我们还没学过....不太敢用....我也不太能理解.....

Jelly4869 发表于 2020-4-16 19:33:13

我们这节学的列表嵌套.....然后老师讲过一个类似的例题用了random函数还有for循环那个.(但是例题没有每个办公室至少两个老师这类条件....主要这个位置不知道怎么弄)....大佬们能不能帮忙从这个方向帮忙想一想{:10_266:}

_2_ 发表于 2020-4-16 21:34:10

Jelly4869 发表于 2020-4-16 19:30
emmmm谢谢啦....不过这个我们还没学过....不太敢用....我也不太能理解.....

找到关系,都是有规律可循的
有收获就给我最佳答案吧{:10_254:}

_2_ 发表于 2020-4-16 21:36:54

Jelly4869 发表于 2020-4-16 19:33
我们这节学的列表嵌套.....然后老师讲过一个类似的例题用了random函数还有for循环那个.(但是例题没有每个 ...

没必要用列表嵌套,毕竟只是求分配次数,你可以把这个函数改一改,改成普通的代码

_2_ 发表于 2020-4-16 21:38:10

还有,我也不知道每次发配的人数有没有限制,索性一次分派多个人,然后求值

Jelly4869 发表于 2020-4-16 21:59:50

_2_ 发表于 2020-4-16 21:36
没必要用列表嵌套,毕竟只是求分配次数,你可以把这个函数改一改,改成普通的代码

emmm可是你这个我真的不理解....而且我作业也得用这个知识点.....我再等等吧

Jelly4869 发表于 2020-4-16 22:05:31

_2_ 发表于 2020-4-16 21:38
还有,我也不知道每次发配的人数有没有限制,索性一次分派多个人,然后求值

题目就这个样子,应该没有限制分配的吧。你这个也没有分呀。。是我还需要写点什么吗

均昊山 发表于 2020-4-16 23:19:06

import random


ll = ['李白','李清照','陆游','杜甫','白居易','毛泽东','杜牧','苏轼','无名氏','孟浩然']

ban1 =[]
ban2 = []
ban3 = []
ban4 = []

print(ll)


while 0 < len(ll):
    if 2 == len(ll):
      break
    else:
      cc = random.choice(ll)
      ban1.append(cc)
      ll.remove(cc)
      cc = random.choice(ll)
      ban2.append(cc)
      ll.remove(cc)
      cc = random.choice(ll)
      ban3.append(cc)
      ll.remove(cc)
      cc = random.choice(ll)
      ban4.append(cc)
      ll.remove(cc)


print('ban1',ban1)
print('ban2',ban2)
print('ban3',ban3)
print('ban4',ban4)
print(ll)

剩下的等兄弟自己改进咯

均昊山 发表于 2020-4-16 23:20:05

import random


ll = ['李白','李清照','陆游','杜甫','白居易','毛泽东','杜牧','苏轼','无名氏','孟浩然']

ban1 =[]
ban2 = []
ban3 = []
ban4 = []

print(ll)


while 0 < len(ll):
    if 2 == len(ll):
      break
    else:
      cc = random.choice(ll)
      ban1.append(cc)
      ll.remove(cc)
      cc = random.choice(ll)
      ban2.append(cc)
      ll.remove(cc)
      cc = random.choice(ll)
      ban3.append(cc)
      ll.remove(cc)
      cc = random.choice(ll)
      ban4.append(cc)
      ll.remove(cc)


print('ban1',ban1)
print('ban2',ban2)
print('ban3',ban3)
print('ban4',ban4)
print(ll)
剩下的兄弟自己改进咯

Jelly4869 发表于 2020-4-17 14:31:13

均昊山 发表于 2020-4-16 23:20
import random




谢谢!!参考了一下做出来了
页: [1]
查看完整版本: 应该是分组问题