【发布时间】:2020-01-19 02:57:52
【问题描述】:
我想制作一个公式/函数/算法来计算两组数字之间的最平滑线。
Set1: (214,224,238)
Set2: (180,207,226)
将以上两个集合视为对。
214-180
224-207
238-226
我相信第一步是让每组对之间的差异最小。在这种情况下,它是 12,因为 238 - 226 = 12。然后我们可以为其他两对增加 12 倍。
214-180 = 34.
34/12 = 2.83333333
214 - (2.83333 * 12) = 180
如果问题允许我们使用小数,那就很简单了。问题是我们不能有小数。每个值必须是整数。因此在本例中,10 次迭代将减少 3 次,2 次迭代将减少 2 次。
至于平滑度,2 - 2 次迭代应该在 3 次迭代之间等间隔是有意义的。因此模式将是
3, 3, 3, 2, 3, 3, 3, 3, 2, 3, 3, 3.
211, 208, 205, 203, 200, 197, 194, 192, 189, 186, 183, 180
希望我已经彻底解释过了。感谢您的建议。
【问题讨论】:
-
为什么不直接用浮点数计算然后取整呢?那么
i-th 的值将是round(start + i/n * (end - start)),其中n是总步数。 -
@NicoSchertler 好吧,我想你已经回答了。如果你想发布答案,我可以接受。