有没有办法逐渐生成N个整数,它们的和等于M?

问题描述 投票:1回答:2

是否有办法逐渐生成N个整数并且它们的总和等于M?

例如:

N = 4M = 10输出:1、2、3、4

1 + 2 + 3 + 4 = M = 10并且正在增长

python
2个回答
0
投票

您可以尝试类似的操作,但是在某些情况下可能会遇到问题。但是,如果N和M存在,则应该找到它。

k = ((m - np.sum( np.arange(n-1) )) // n)
np.arange(k,k + n)

0
投票

数学可以在这里为您提供帮助。

如果N为奇数,则将您的M除以N以获得中间数字。从那里开始,处理第一个(N-1)/ 2个数字,然后处理下一个(N-1)/ 2个数字。

如果N为偶数,则应用相同的逻辑,不同之处在于下一个数字与平均值相差0.5和-0.5。从那里您可以处理第一个(N-2)/ 2个和下一个(N-2)/ 2个数字。

© www.soinside.com 2019 - 2024. All rights reserved.