![](/img/trans.png)
[英]Python: I need to randomly generate 6 numbers who's sum adds up to a specified number
[英]function to generate array of numbers that sum up to inputed number
我知道這看起來很傻,但我需要創建一個函數generate_sum_array(seed,factor)
,它將創建一個以隨機順序排列的任意數量元素的數組,其中所有數組元素總和為seed
,並且每個有元素都可以被整除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,]
[10,10,10,10,10,10,10,10,10,10]
[50,20,10,20,]
等等 只要所有元素的總和是100
種子就可以有無限的可能性(我想.....我不太確定....可以生成多少個不同的數組)
您可以執行的符合您的限制的最簡單功能是:
def generate_sum_array(seed,factor):
return [factor for i in range(seed // factor)] if seed % factor == 0 else None
任何其他有效組合都由返回的列表的總和組成
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.