当前位置: 首页 > 知识库问答 >
问题:

如何确定一个数可以分解为更小的数的和的方式的数目

林德辉
2023-03-14

如果数字是2,可以写成和(1,1)

如果数字是3,它可以写为sum(1,1,1),sum(1,2),sum(2,1)

如果数字是4,它可以写为和(1,1,1,1),和(1,3),和(3,1),和(1,2,1),和(2,1,1),和(1,1,2),和(2,2)。7种不同的方式

但问题是sum(1,2)和sum(2,1)是不同的。我根本看不到这样做的模式。

如有任何帮助,不胜感激。我只想知道解决办法。

共有1个答案

冯宏放
2023-03-14

把数字想象成一条点线:

4     -> . . . .

在两个相邻的点之间,我们可以设置一堵墙,将数字分解成更小的点:

1+3   -> .|. . .
2+2   -> . .|. .
1+2+1 -> .|. .|.

对于每个n-1间隙,我们可以选择设置墙或不设置墙,总共有2^(n-1)的可能性。但是,如果不设置墙,我们就只能得到这个数字,这是不允许的,所以我们删除这个数字,作为最终的2^(n-1)-1解决方案的可能性。

 类似资料:
  • 问题内容: 输出将是: 看起来,当更改为时,分数将被丢弃。 问题答案: 这里的问题是常量和浮点数的表示形式。 常数以任意精度表示。浮点数使用IEEE 754 标准表示。 规格:常数: 数字常数表示任意精度的值,并且不会溢出。 规格:数值类型: 在IEEE 754中,使用64位(在Go中)的 53位 双精度用于存储数字。这意味着可以表示的最大位数(最大位数)是其中的位数(1位表示符号): 精确到15

  • 给定一些数组数和一个正整数k,确定是否可能将这个数组分成k个连续数组。 示例: 自[1,2],[3,4]后输出为真

  • 问题内容: 想象两个正整数A和B。我想将这两个整数合并为一个整数C。 不能有其他整数D和E组合成C。因此,将它们与加法运算符组合起来是行不通的。例如,30 + 10 = 40 = 40 + 0 = 39 + 1叠加都不起作用。例如,“ 31” +“ 2” = 312 =“ 3” +“ 12” 此组合运算还应该是确定性的(始终在相同的输入下产生相同的结果),并且应始终在整数的正或负侧产生整数。 问题

  • 我试图确定数组列表中的数字是否可以被antoher数组列表中的所有数字整除。我下面的代码输出列表中的所有数字,这些数字可以被中的任何除数整除。我想输出列表中所有除数都可以整除的值,而不是它们中的任何一个。例如,如果我有listdiv=[1,2,3,,5,8]和listdivisor=[2,4]。预期的输出应该是8,但此代码输出2和8。 非常感谢。我们将非常感谢您的努力!

  • 我有功能: 我需要一个函数,在“number”参数-将接收一个小数,舍入到小数位数(缩放参数),并返回字符串中的结果。有人知道怎么做吗?

  • 问题内容: 我一直在努力,但是我不明白。我是编程新手,所以几乎每个新步骤都是一个实验。尽管在没有参数/返回值的情况下调度正常的闭包没有问题,但到目前为止,我还不了解如何处理带有(多个)参数并最终返​​回的函数。 为了弄清楚适当的“解决方法”的逻辑,如果有人可以发布一个实际的示例,这样我就可以确定自己是否正确,那就太好了。我将非常感谢您提供的任何帮助…如果其他一些实际示例以更好的方式说明了该主题,请