【发布时间】:2020-02-04 17:46:36
【问题描述】:
我正在寻找一个程序,它的输入 n 代表一个整数,k 整数的个数 n 应该是总和。
例如n = 5, k =2 将作为输出
1 + 4, 3 + 2.
我已经搜索了互联网,但我发现的只是一个找到一些选项但不会显示哪些选项的程序。
我不在乎程序是用哪种语言编写的,只要它符合我的要求即可。
【问题讨论】:
-
你考虑过这个Stack Overflow answer吗?
-
你的问题是找到所有的partitions n 分成k 部分。您可以通过调用
constrained_partitions(n, k, 1, n),在this answer 中找到一个Python 解决方案,该解决方案可以找到所有有序分区(即顺序重要的地方)。或者在谷歌上搜索partition n into k parts algorithm。 -
@DarshanPatil 显然,复杂性至少与所需输出的大小一样多,这对于大型
n来说将是巨大的。这是问题固有的。当您要求允许 0 时,我链接到的答案仅在输出中产生 0,方法是使用等于 0 的min_elem调用它;如果你用min_elem等于 1 来调用它,那么它不会在输出中包含 0。 -
@DarshanPatil 是的,我特别说我链接到的答案是针对“有序分区(即,顺序很重要)”。请仔细阅读;这里不需要@标记我。
标签: math