类似于:https://zhuanlan.zhihu.com/p/94270000

import random
def fun(l):
    app,d=tuple(map(int,l))
    ll = []
    for _ in range(65000):
        a=app
        l_d=[0]*d
        while a>0:
#             这样取,没改变l_d这个list里面的数
#             for l_d_i in l_d:
#                 r = random.randint(0,a)
#                 l_d_i += r 
            for i in range(len(l_d)):
                r = random.randint(0,a)
                l_d[i] += r 
                a-=r
                if a == 0:
                    break
        l_d.sort()
        if l_d not in ll:
            ll.append(l_d)
    print(len(ll))

while 1:
    try:
        l=(input()).split(' ')
        fun(l)
    except:
        break

这样每次把一个苹果随机丢到一个盘,效果没有上面的方法好。比 (9个苹果,8个盘子)更复杂的就经常蒙不对了
图片说明