如何求通项公式?

2021-09-12 22:38:41 +08:00
 xiaoming1992

自己写个玩具包时,碰上了一个问题,解决不了,大佬们有思路吗:

对于给定的Sn, 是否存在这样的等差数列 S1 、S2 、...、Sn, 满足S1 * S2 * ... * Sn === S, 如果存在, 通项公式是什么?


目的其实是图片的缩放, 我一方面希望实现 Lib.emit("SCALE", { scalar: S }), 另一方面又希望能实现一个缓动事件, 对于任意的 scalar: S, 可以将 SCALE事件分成若干个 scalar 递减的事件 emit 出去, 外面对这个递减数列无需任何处理, 只需要依次对图片执行 scale( Si ) 就行了

618 次点击
所在节点    问与答
3 条回复
xiaoming1992
2021-09-12 22:55:53 +08:00
对了, 应该是解下面这个方程
`S1 * (S2 + d) * (S3 + 2d) * ... * [Sn + (n - 1)d] = S`, `S` 和 `S1` 应该有个限制, 比方说 `S1 = 1.001, S > S1`, 这儿 `d` 怎么求呢...
lance6716
2021-09-12 23:33:22 +08:00
二分查找就是喽
xiaoming1992
2021-09-13 01:14:24 +08:00
没找等差数列了,构造了一个递减数列实现了缓动

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/801426

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX