【问题标题】:Program that counts all the possible PARTS of a number [closed]计算数字的所有可能部分的程序[关闭]
【发布时间】:2018-10-29 21:26:56
【问题描述】:

好的,所以我的一个朋友向我提出挑战,要求我完成这项工作,但我就是走不了多远......

他让我做的是制作一个程序来显示和计算输入数字的所有可能部分。

5 的示例:

1+1+1+1+1

2+1+1+1

3+1+1

4+1

5

3+2

2+2+1

我希望程序用 C++ 或一些伪代码编写,我都不介意。

期待感谢大家!

编辑:不重复。我要求用 C++ 提供解决方案;另一个是Python。另外,我的问题要求所有可能添加的部分都返回初始数字。

【问题讨论】:

  • 到目前为止你做了什么?
  • 嗯,不多...还没有完成代码,但我有一些数字细分;这就是我所拥有的。一些提示,也许?顺便说一句,我已经看过与此相关的维基百科页面,但我的朋友会知道我是否会复制它。
  • 完全不相关的链接
  • 另外,Serge,感谢您的洞察力,但我希望您知道这是我需要的,或者至少获得相同数量的可能返回 N 值的操作/跨度>
  • 你的问题不清楚。 “零件”是否按降序显示?如果是这样,为什么2+3 是您的示例之一? “部分”是正整数吗?如果是这样,为什么5+0 是您的示例之一?你的意思是5?为什么0 不在任何其他行?等等...请澄清。另外,展示一些你自己的作品,即使只是解释一些失败的尝试。您是否尝试过有关该问题的网络搜索?你试过Wikipedia吗?你在这个网站上看过类似的问题吗?

标签: math permutation combinatorics


【解决方案1】:

对于非零分区(想象一下 1 数组中的布尔分隔符)

2 ** (n-1) 

此列表将包括 2 + 3 和 3 + 2。

如果允许为 0,则为无限。

【讨论】:

  • 介意解释一下公式吗?
  • 不是我想要的,如果你愿意的话...有人告诉我,10 的 N 大约是 42(或 48;不太确定)。这个公式返回 18 另外,1000 的 N 应该返回超过 1.000.000 是的,我知道,一个问题的斗争,对吧?
  • 好的,那么对于简单的解决方案,使用堆栈交换链接它会给你递归公式
  • 为了更快的算法阅读论文
猜你喜欢
  • 2013-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-25
  • 1970-01-01
  • 2019-05-22
  • 2013-03-21
  • 1970-01-01
相关资源
最近更新 更多