我必须创建一个采用两个整数的方法,让它们成为n和m,并返回有多少种方法来求和m正数n.例如,像这样的方法调用partition(6, 2)应返回3,因为有3种方法可能.他们是5 + 1,4 + 2和3 + 3.顺便说一句,4 + 2是相同的2 + 4,因此该方法不应将它们视为两个不同的变体.有人知道这个问题的解决方案吗?
更新:n和m不大于150.
我想分成104个随机数的数组,但都不能0或不高于4.例如[1,2,3,4],[1,4,4,1]或[4,2,3,1].
我认为这是一个简单的问题,但由于某种原因,我无法想到如何做到这一点.如果有人有一些非常有帮助的指示!
编辑:这是我现在的代码,但我生成的总数低于10:
let formation = [];
let total = 0;
for (let i = 0; i < 4; i ++) {
if (total < 9) {
formation[i] = Math.floor(Math.random() * 4) + 1;
} else {
formation[i] = 1;
}
}
Run Code Online (Sandbox Code Playgroud) 我想生成一个包含 15 个整数的列表,总和为 12,最小值为 0,最大值为 6。
我试过以下代码
def generate(low,high,total,entity):
while sum(entity)!=total:
entity=np.random.randint(low, high, size=15)
return entity
Run Code Online (Sandbox Code Playgroud)
但上述功能无法正常工作。这太耗时了。请让我知道生成此类数字的有效方法?
例如,我想生成 20 到 46 之间的 22 个数字,平均值为 27。我希望这些数字尽可能地覆盖范围。
编辑:这些数字不需要是随机的。
math ×2
algorithm ×1
java ×1
javascript ×1
numbers ×1
numpy ×1
pandas ×1
partitioning ×1
python ×1
random ×1