均匀分配算法(Python)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xyy1028/article/details/86492130

1.给出一个数字和一个数字的集合,把这个数字依次分成集合中的数字

def pureSeparate(number, numberList):
    resultLists = []
    for i in numberList:
        resultList = []
        b = number / i
        for j in range(0, i):
            resultList.append(b)
        resultLists.append(resultList)
    return resultLists


print pureSeparate(100, [2, 3, 4, 5])

输出:

[[50, 50], [33, 33, 33], [25, 25, 25, 25], [20, 20, 20, 20, 20]]

2.已知一个数字和一个二维数组,该二维数组有相同的元素,将该数字以每个相同元素的个数评分,并依次匹配到该数组后,要求得出该形式:[[1, 50], [1, 50], [2, 33], [2, 33], [2, 33], [3, 25], [3, 25], [3, 25], [3, 25]]

def insertionNumber(number, originalList):
    list.sort(originalList)
    countList = []
    m = 0
    n = originalList.count(originalList[0])
    while n <= len(originalList):
        count = 0
        for i in range(m, n):
            count = originalList.count(originalList[i])
            break
        countList.append(count)
        n += count
        m += count

    s = 0
    l = 0
    for i in countList:
        l += i
        b = number / i
        for j in range(s, l):
            originalList[j].append(b)
        s = l
    return originalList


print insertionNumber(100, [['a'], ['a'], [2], [1], ['a'], [1], [2], [1], ['a']])

输出:

[[1, 33], [1, 33], [1, 33], [2, 50], [2, 50], ['a', 25], ['a', 25], ['a', 25], ['a', 25]]

猜你喜欢

转载自blog.csdn.net/xyy1028/article/details/86492130