3

在配色方案中,我想对色调进行排序,但想避免“大差距”,即更喜欢350,354,2,10,152,10,15,350,354当表示为 0-360 度值时)。这样做的最佳方法是什么(例如在 php 中)?它是否找到了“最大的差距”并在那之后开始?有更好的想法吗?

4

2 回答 2

0

如果你没有那么多:

  1. 只是按顺序排序
  2. 找到方差(模 360)(即,它们与“模 360 均值”相差多远)
  3. 将第一个移到最后,再次检查方差。
  4. 在你尝试了所有这些之后,选择最小的一个。

该算法的列表大小为 O(N^2)。

主要的收获是你在这里只有 N 个“旋转”。确定一个“差距”统计数据,并在所有 N 次旋转中强制使用它,并使用最小化“差距”的安排。

于 2011-04-02T15:24:14.667 回答
0

只需找到最大的差距并将其放在开头即可。

  1. 对数组进行排序
  2. 查找最大间隙(循环遍历数组,查找两个邻居之间的最大距离)
  3. 移动间隙作为开始(另一个循环移动所有数字)
于 2011-04-02T15:32:55.443 回答