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



京公网安备 11010502036488号