例如:生成500个范围在[1,5]以内的随机整数,使其总和等于1000,且生成xslx文件
要求总额相等,已经不“随机了”
500个范围在[1,5]以内的随机整数的和,趋向于1500才对
所以生成的随机整数肯定小的数要多一点
设计一个总和等于1000的列表,再用shuffle()打散,模拟随机生成。
>>> import random
>>> a = [0]*300+[1,2,3,4]*50 #如果个数也要“随机”另想办法
>>> random.shuffle(a)
>>> b = [1+i for i in a]
>>> b
[1, 5, 3, 4, 1, 2, 1, 3, 1, 1, 1, 1, 5, 1, 1, 4, 2, 1, 4, 2, 4, 1, 3, 3, 4, 4, 4, 1, 1, 1, 1, 3, 1, 3, 4, 5, 1, 1, 1, 1, 2, 1, 1, 5, 3, 4, 1, 1, 1, 1, 5, 1, 1, 1, 5, 1, 1, 3, 2, 2, 2, 4, 1, 4, 1, 1, 5, 1, 1, 1, 4, 1, 1, 5, 1, 1, 5, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 3, 2, 3, 2, 1, 5, 1, 1, 5, 1, 1, 2, 1, 1, 1, 3, 1, 1, 5, 3, 1, 5, 1, 4, 1, 5, 3, 5, 1, 1, 1, 1, 1, 3, 3, 2, 1, 1, 1, 1, 1, 1, 5, 3, 1, 1, 5, 1, 2, 2, 1, 1, 1, 1, 1, 4, 1, 1, 4, 1, 3, 1, 1, 1, 1, 1, 1, 4, 5, 1, 4, 5, 3, 2, 1, 1, 1, 1, 4, 2, 1, 1, 2, 5, 1, 1, 2, 3, 1, 3, 1, 5, 3, 1, 1, 1, 4, 1, 1, 1, 5, 1, 1, 5, 3, 3, 3, 2, 2, 1, 2, 1, 1, 3, 1, 1, 1, 1, 2, 1, 5, 1, 1, 1, 1, 2, 1, 1, 1, 4, 1, 1, 1, 1, 2, 1, 3, 1, 3, 1, 5, 4, 1, 3, 1, 1, 2, 2, 5, 5, 5, 1, 5, 1, 5, 3, 1, 1, 1, 1, 2, 1, 1, 1, 3, 1, 1, 1, 1, 1, 2, 1, 1, 3, 1, 1, 3, 3, 4, 3, 1, 1, 5, 3, 1, 4, 5, 1, 1, 1, 1, 3, 5, 1, 1, 1, 3, 1, 1, 1, 3, 4, 1, 2, 1, 1, 1, 1, 4, 1, 1, 4, 1, 1, 1, 1, 5, 4, 1, 5, 1, 1, 1, 4, 2, 1, 1, 1, 1, 4, 1, 1, 1, 1, 4, 4, 2, 5, 3, 1, 1, 1, 1, 4, 2, 1, 1, 1, 1, 1, 5, 3, 1, 1, 5, 5, 1, 1, 1, 1, 1, 5, 1, 4, 1, 1, 1, 1, 1, 4, 4, 1, 4, 5, 1, 1, 1, 2, 1, 1, 1, 5, 1, 2, 1, 2, 1, 2, 1, 1, 1, 1, 4, 1, 1, 3, 1, 1, 1, 1, 2, 5, 1, 2, 1, 2, 5, 1, 1, 2, 2, 1, 1, 1, 4, 1, 5, 4, 5, 5, 1, 1, 1, 4, 1, 1, 1, 5, 1, 1, 2, 3, 2, 1, 1, 1, 1, 3, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 4, 1, 1, 2, 2, 2, 4, 1, 4, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 4, 1, 1, 1, 5, 1, 5, 4, 1, 1, 1, 2, 3, 1, 1, 1, 4, 3, 1, 3, 1, 1, 1, 3, 1, 3, 4, 1, 1, 1, 1, 1, 4, 2, 1, 2, 3, 1, 2, 1, 1]