【发布时间】:2014-06-03 23:00:57
【问题描述】:
所以我有一组值需要按比例缩小,同时保持缩放值的最小值。
例如,假设我有一个值数组[1, 1, 3, 5],最小比例因子为.2。
通过规范化数组,我们得到数组[.1, .1, .3, .5]。但是,请记住最小比例因子,我们将有值 [.2, .2, .3, .5],它加起来是 1.2,而不是 1。
我的想法是遍历数组并首先将所有低于最小值的值设置为最小值,保留一个进位变量以确定仍然需要重新分配多少到数组中超过最低限度。
对于所有超过最小值的值,根据进位变量缩放它们的值,然后从它们的值中减去该值。
因此,对于上面的示例,我们将从.3 中减去3/8 * .2,并从.5 中减去5/8 * .2 以得到[.2, .2, .225, .375]。
还有其他方法可以更有效地做到这一点吗?还是另一种缩放剩余值的方法?
编辑:对不起,缩放可能是不正确的术语,但最终数组的值将以这样一种方式进行划分,即它们的值相对于总值会发生变化。
我将解释具体的实现,以便问题更清楚:
我有很多帖子,每个帖子都会在淡出之前显示一段时间,然后再显示下一个帖子。我希望帖子之间的延迟取决于每个帖子中 words 的数量,但也被限制在至少某个最小值。
要显示所有帖子有一个总时间,并且应该在所有帖子之间分配时间。
【问题讨论】:
-
???如果要缩放,则永远不要添加或减去...也许您的意思是其他类型的东西,不是缩放,或者不是指“最小”值,而是某种分辨率或粒度...您能解释一下吗?你在做什么。
-
如果有最小值限制,那么你不能保证项目的总和等于1.0。
-
@miguel-svq 我用更多信息编辑了我的帖子。如果您需要更多信息,请告诉我!
-
在 google 中搜索 Thales 和几何。我认为这比我写答案要快...
-
如果您需要缩放 6 个值的数组以求总和为 1,同时保持最小值为 0.2,该怎么办?也许您可以告诉我们为了什么您需要“缩放”这个向量,以便我们为您提供适当的解决方案。
标签: javascript arrays algorithm math