类似于: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个盘子)更复杂的就经常蒙不对了