当前位置: 首页 > 面试题库 >

获取所有加起来为数字的数字

古明煦
2023-03-14
问题内容

我正在尝试找到一种方法来显示所有可能的X整数集,这些X整数加起来就是一个给定的整数。例如,要获得所有2的整数集,得出5,我将拥有:

1, 4
2, 3

或3个整数组成6:

1, 1, 4
1, 2, 3
2, 2, 2

我只需要不包括0的整数,并且只需要处理一组中最多约15个和最多30个即可。数。

我什至不知道这是否有一个数学术语。我猜这类似于分解因子吗?


问题答案:

这是解决此问题的一种方法:

def sum_to_n(n, size, limit=None):
    """Produce all lists of `size` positive integers in decreasing order
    that add up to `n`."""
    if size == 1:
        yield [n]
        return
    if limit is None:
        limit = n
    start = (n + size - 1) // size
    stop = min(limit, n - size + 1) + 1
    for i in range(start, stop):
        for tail in sum_to_n(n - i, size - 1, i):
            yield [i] + tail

您可以像这样使用它。

for partition in sum_to_n(6, 3):
    print partition

[2, 2, 2]
[3, 2, 1]
[4, 1, 1]


 类似资料:
  • 根据这个帖子,我们可以通过下面的代码得到一个数的所有约数。 例如,数字的除数是。 在搜索了一些相关的帖子后,我没有找到任何好的解决方案。有什么有效的方法来实现这一点吗? 我的解决方案: 通过这个解求出给定数的所有素因子 得到这些基本因子的所有可能组合 然而,这似乎不是一个好办法。

  • 本文向大家介绍从Java字符串中获取所有数字,包括了从Java字符串中获取所有数字的使用技巧和注意事项,需要的朋友参考一下 假设以下是我们的字符串。 为了仅显示上述字符串中的数字,我们使用了该方法并将所有字符替换为空。 以下是最后的示例,该示例仅显示字符串中的数字。 示例 输出结果

  • 我一直在学习动态规划,我想通过打印出所有相加为一个数字的子集来进一步研究经典的子集和问题。我该怎么做呢?到目前为止,我知道如何根据是否存在相加的子集来打印true或false 如果可能,我想返回所有子集的数组。

  • 问题内容: 我正在为Android开发一个数学应用程序。在这些字段之一中,用户可以输入一个整数(无数字且大于0)。这个想法是获得所有可能的和,使之成为整数,而不加倍(在这种情况下为4 + 1 == 1 + 4)。唯一已知的是此int。 例如: 假设用户输入4,我希望该应用返回: 4 3 + 1 2 + 2 2 + 1 + 1 1 + 1 + 1 + 1 显然4 == 4,所以也应该加上。关于我应该

  • 我试图创建一个正则表达式模式来获取给定字符串中的所有数字,这些数字位于方括号内并用逗号分隔。输出应该是这样的, 数字1=45 数字2=66 等等...到目前为止,我所拥有的只是一个贪婪抓住方括号内一切的模式。 我是否应该创建两个模式,一个是贪婪模式,然后是第二个模式,以搜索贪婪输出中由逗号分隔的所有数字?还是只创建一个模式更有效?

  • 我正在研究弦和一个问题。问题陈述是“将字符串中的所有数字加一”。我没有得到输入数字129和9923所需的输出。有人能帮忙吗!