我知道这似乎很愚蠢,但是我需要创建一个函数generate_sum_array(seed,factor)
,该函数将创建一个任意数量的以随机顺序排列的元素的数组,其中所有数组元素总计为seed
并具有每个have元素可被factor
整除
例如:
generate_sum_array(100.10)
应该返回类似
[20,10,40,10,20]
或[10,10,10,10,10,10,10,10,10,10]
或[50,20,10,20,]
等,只要所有元素的总和是100
的种子
可能有无限的可能性(我认为.....我不太确定....可以生成多少个不同的数组)
答案 0 :(得分:1)
from random import randint
def generate_sum_array(seed, factor):
if seed%factor:
raise ValueError("Seed and factor are inconsistent")
remnant = seed
arr = []
while(remnant):
val = randint(1, remnant/factor)*factor
arr.append(val)
remnant-=val
return arr
答案 1 :(得分:0)
您可以执行的最简单的符合您的限制的功能是:
def generate_sum_array(seed,factor):
return [factor for i in range(seed // factor)] if seed % factor == 0 else None
其他任何有效组合都只是由返回列表的总和组成