$array = array(1, 2, 3, 4, 5, ..., N);
还有一个号码D = 10%
。以这种方式对数组进行排序的最快方法是:
$sorted_array = {a[i]}
$array
完全包含混合顺序的元素,但还包含:
abs(a[i + 1] - a[i]) >= N * 10%
对于任何人[i]
,并尽可能地随机化。
例如,
// assume D = 25%
$array = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
// so the difference between any neighbors is >= 4 = 10 * 25%.
$sorted_array = array(4, 8, 3, 7, 1, 5, 9, 2, 6, 10);
当然如果D
很大,就不可能对我想要的数组进行排序。我不需要 100% 完美的结果,但我希望这些数字看起来是“随机的”,并且大多数数字至少有 10% 的差异。
我有一个奇怪的任务,但它有一个实用的区域可以使用。我想从图像中提取随机线,它们应该尽可能不同。当然,数字图像(照片等)上的相邻线看起来非常相似。
我解释得当吗?