一道需求引发的数学题

2021-06-17 15:31:25 +08:00
 rationa1cuzz
一个团队必须要由 7 名评审老师同时评审,每位评审老师最多可以评审 50 支团队,问 10 名评审老师可以至多评审多少支团队?
1408 次点击
所在节点    问与答
12 条回复
treblex
2021-06-17 15:52:03 +08:00
只够一组,50 个,其他的 3 位老师拼团失败😂
superJava
2021-06-17 15:57:59 +08:00
500/7 = 71
murmur
2021-06-17 16:01:00 +08:00
这要看工时和工钱了,评审一个团队多少天不知道,多复杂不知道,给多少钱不知道
给钱多了并发可以高,钱少了一个团队没几天评不完
goodboy95
2021-06-17 16:13:26 +08:00
简单做除法就好,就是上面说的 500/7
可以考虑将所有老师的评审权排成一排:1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10……这样循环 50 次,每次需要评审一个团队时,就从这一排评审权中取出 7 个,比如说第一次取出 1-7 这 7 名老师,第二次取出 8-10 和 1-4 这 7 名老师。
RyuZheng
2021-06-17 16:17:37 +08:00
```python
import itertools
from collections import defaultdict

ls = itertools.combinations("ABCDEFGHIJ", 7)

count_dict = defaultdict(int)
count = 0
for l in ls:
print('Analyze No. {} {}'.format(count + 1, l))
if any(count_dict[i] >= 50 for i in l):
print('commbination skip...')
continue

for i in l:
count_dict[i] += 1
count += 1

print(count)
```

我怎么算出来是 58
GuuJiang
2021-06-17 16:21:22 +08:00
71
“每位老师最多评审 50 支团队”这个条件可以等价为每个老师手底下有 50 个苦逼研究生,当需要老师去评审的时候其实是派一个研究生去当枪手,且每个枪手只能用一次,为了结果最大化,采用贪心策略,每当需要一轮评审的时候从剩余研究生数最多的老师里选 7 个成团,于是问题进一步简化为了在一个 10*50 的矩阵里从左到右依次取 7 个元素,不够 7 个时折行,最多能取几次,最终简化成了 500/7
hxsf
2021-06-17 16:41:08 +08:00
老师尽可能平均的参与。那就每 10 场里参与 7 场轮空 3 场。单人最多参与 50 次。
50 地板除 7 * 10 = 70 ?
thunderw
2021-06-17 16:45:18 +08:00
[10*50/7]=71
每次调剩余次数最多的人组团就行了。
dovahkiinQAQ
2021-06-17 17:58:21 +08:00
老师评审名额为 50*10=500
一个团队消耗 7 次
所以能评审的团队数=500/7=71
Vegetable
2021-06-17 19:03:27 +08:00
不限制时间的情况下,「同时」就失去了意义。
相当于每个老师有一个耐久 50/50,
来一个团队,选出有耐久的 7 个老师评,总耐久度-7 。你问题可能描述的不准确,不然这根本不算数学题啊
shpkng
2021-06-17 19:13:59 +08:00
这不是经典小学数学题吗.. 我四五年级的时候做的就这种
总人次除以每次需要的人次就行
50*10/7
oneisall8955
2021-06-17 20:19:00 +08:00
@GuuJiang #6 正解,10*50 的矩阵从左到右,每次拿 7 个元素,最多拿几次

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/783997

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX