是否有办法逐渐生成N个整数并且它们的总和等于M?
例如:
N = 4M = 10输出:1、2、3、4
1 + 2 + 3 + 4 = M = 10并且正在增长
您可以尝试类似的操作,但是在某些情况下可能会遇到问题。但是,如果N和M存在,则应该找到它。
k = ((m - np.sum( np.arange(n-1) )) // n)
np.arange(k,k + n)
数学可以在这里为您提供帮助。
如果N为奇数,则将您的M除以N以获得中间数字。从那里开始,处理第一个(N-1)/ 2个数字,然后处理下一个(N-1)/ 2个数字。
如果N为偶数,则应用相同的逻辑,不同之处在于下一个数字与平均值相差0.5和-0.5。从那里您可以处理第一个(N-2)/ 2个和下一个(N-2)/ 2个数字。