分组问题,32个数分8组,每组中数不能有相同的,请用python编程?
答案:3 悬赏:80 手机版
解决时间 2021-11-27 16:46
- 提问者网友:沉默的哀伤
- 2021-11-26 23:28
分组问题,32个数分8组,每组中数不能有相同的,请用python编程?
最佳答案
- 五星知识达人网友:独钓一江月
- 2021-11-27 00:31
#!/usr/bin/env python
# coding: utf-8
"""
分组问题:以数字举例,假如我有7个1,4个2,3个3,5个4,7个5,4个6,2个7,
如何用python编程,分用8个组,每组中的4个数互不相等。
可能分组的结果不唯一,没关系。
"""
datasource = {"1": 7, "2": 4, "3": 3, "4": 5, "5": 7, "6": 4, "7": 2}
groups = map(lambda x: [], range(8))
def showgroups():
"""show groups
"""
print "-" * 16
for group in groups:
print group
def getrandompos(x):
"""在groups中找到不包含x的最短分组
"""
return sorted([(i, group) for (i, group) in enumerate(groups)
if x not in group],
key=lambda (i, group): len(group)
)[0][0]
for element, cnts in sorted(datasource.iteritems(),
key=lambda x: x[1],
reverse=True):
while cnts:
R = getrandompos(element)
if len(groups[R]) < 4 and element not in groups[R]:
groups[R].append(element)
cnts -= 1
showgroups()来自:求助得到的回答
# coding: utf-8
"""
分组问题:以数字举例,假如我有7个1,4个2,3个3,5个4,7个5,4个6,2个7,
如何用python编程,分用8个组,每组中的4个数互不相等。
可能分组的结果不唯一,没关系。
"""
datasource = {"1": 7, "2": 4, "3": 3, "4": 5, "5": 7, "6": 4, "7": 2}
groups = map(lambda x: [], range(8))
def showgroups():
"""show groups
"""
print "-" * 16
for group in groups:
print group
def getrandompos(x):
"""在groups中找到不包含x的最短分组
"""
return sorted([(i, group) for (i, group) in enumerate(groups)
if x not in group],
key=lambda (i, group): len(group)
)[0][0]
for element, cnts in sorted(datasource.iteritems(),
key=lambda x: x[1],
reverse=True):
while cnts:
R = getrandompos(element)
if len(groups[R]) < 4 and element not in groups[R]:
groups[R].append(element)
cnts -= 1
showgroups()来自:求助得到的回答
全部回答
- 1楼网友:woshuo
- 2021-11-27 03:28
学生分组参加跳绳比赛.按每组6人或每组8人,都能恰好…8518
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯