如何使用Python为给定的和生成加数?

2024-03-28 19:06:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图为0到30之间的任何数字生成可能的加数。加数的个数=10,加数下限=0,加数上限=3。你知道吗

例如,对于数字30,加数可以是3+3+3+3+3+3+3+3+3+3+3=30。你知道吗

对于12,加数可以是,3+3+1+2+1+1+0+0+1=12,或3+3+3+3+0+0+0=12或给定极限内的任何值。但是加数的数目应该总是10。你知道吗

如何在Python中执行此操作?你知道吗

提前谢谢。 塞缪尔·杜拉维尔


Tags: 数字数目个数加数
1条回答
网友
1楼 · 发布于 2024-03-28 19:06:14

如果您想生成所有元素,那么由于您使用的是较小的数字,您可以生成所有1048576种方法,从[0, 1, 2, 3]中选择10个元素,并检查哪些元素和您想要的元素相加

from itertools import product

def addend_all(n):
    for combination in product(range(4), repeat=10):
        if sum(combination) == n:
            yield combination

for i in range(31):
    print(list(addend_all(i)))

相关问题 更多 >