永发信息网

分组问题,32个数分8组,每组中数不能有相同的,请用python编程?

答案:3  悬赏:80  手机版
解决时间 2021-11-27 16:46
分组问题,32个数分8组,每组中数不能有相同的,请用python编程?
最佳答案
#!/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()来自:求助得到的回答
全部回答
学生分组参加跳绳比赛.按每组6人或每组8人,都能恰好…8518
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我有冤屈怎么办
篮球培训班地址在哪,我要去那里办事,
三姐妹小炒馆怎么样
形容刚刚失业的心情
导热油和石蜡溶在一起,能分离吗
上绕鄱阳镇魅蓝s6多少钱
若思是什么意思
给布娃娃起个名字
EDG vs QG为什么会输呢 这锅厂长背不背
DNA半保留复制的过程
混泥土强度C30 设计桩长20米 如何确定桩基混
为什么2018年的台风这么多?气候反常?
我该选那个好?
爱婴坊地址在什么地方,想过去办事,
你好,有种钨钢为什么用磁铁吸不住呢
推荐资讯
吔屎啦梁非凡出自哪个电视剧?
15.05x2.6怎么列竖式
龙胜物流(迎宾大道907号附近龙胜物流)地址在
中娱新影 童星真假
日月潭什么吸引了许许多多的中外游人
昌吉市健友小区中学是哪个学区
讨厌这个世界,讨厌每一个人。
身高1·55米重62公斤身才怎么穿衣裤和头发来
冰封骑士网吧地址在什么地方,想过去办事,
古代想报国,却没成功的人
恨雁南飞 东北搞笑视频
固特异97v是什么意思
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?