有没有这样一种现成的算法?

王桑的一天 2017-07-28 09:43:41
给定一个数字,如1000

将它分解为 N 个数的和:
n1, n2, n3, ..., nN

SUM(n1, n2, n3, ..., nN) = 1000

n1, n2, n3, ..., nN 这个序列的值越来越大,符合某种规律

要求:
给定这个数字,如1000, 和N, 如10

返回 n1, n2, n3, ..., n10 这个序列

有这种算法吗?
...全文
259 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
王桑的一天 2017-08-02
  • 打赏
  • 举报
回复
换了一种方法,简单化,得出的曲线和一元三次方程是相似的: nN,nN-1,...,n2, n1 假设数字是1000 [500, 250, 125, 62, 31, ...,1,0] 即后面的数是前一个的一半(整数除,舍掉了小数部分) 得出的这个序列之和是逼近于1000的 画出的曲线就是先陡后缓
leeky 2017-08-01
  • 打赏
  • 举报
回复
引用 4 楼 leeky 的回复:
初步……
是“初步判断”
leeky 2017-08-01
  • 打赏
  • 举报
回复
初步这题目有点类似于那个“比较有挑战的算法, 大神看过来”帖子的解法,但那个楼主不知是在美国伊利诺伊州失踪还是在日本北海道失踪,没影了,使得俺也没一点兴趣了。 你不妨试试用递归算法。多分析出一些线束,对于减小规模很有帮助。
yyfhz 2017-08-01
  • 打赏
  • 举报
回复
先弄个规律函数F(x),然后求k,使得F(k)+F(k+1)+F(k+2)+...+F(x+N)=1000,然后去解方程。
Moyiii 2017-07-28
  • 打赏
  • 举报
回复
给你提供两种思路,能不能领悟看你自己: 1,等差数列等比数列的变形, 这个n你可以自己指定,但是恰好等于给定的数字不一定符合某种规律 2,把给定的数字n拆解成二进制的形式 S = 1 * n1 + 2 * n2 + 4 * n3 + 8 * n4 + ...
王桑的一天 2017-07-28
  • 打赏
  • 举报
回复
类似于一元三次方程的曲线

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧